perm filename S54.JAM[S,DOC] blob sn#002734 filedate 1972-10-09 generic text, type T, neo UTF8
SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I


STANFORD ARTIFICIAL INTELLIGENCE LABORATORY  -  SEPTEMBER 25, 1970
OPERATING NOTE NUMBER 54.2







		STANFORD A-I PROJECT MONITOR MANUAL
		   CHAPTER I  -  CONSOLE COMMANDS

					by Andy Moorer


    This  is  the  first  chapter of the STANFORD A-I MONITOR MANUAL.
This covers basically console commands.  Part A is a  description  of
how  to  get on the machine for people who have never seen our system
or one like it before.  There are inaccuracies, little white lies, in
this  part,  but  it is purely for reasons of simplicity.  Part B has
the complete explainations and is meant to be all-inclusive in  every
respect.
    On  format of this manual, the section word system was adopted to
eliminate references to page numbers.  In this manner, the manual may
grow  or  shrink  without  having  to  change  all  these references.
Examples of commands are often given in double-quotes (").  You never
(hardly  ever)  type  double-quotes  in  a  command to the system, so
please  ignore  their  appearance  in  the  manual.   They  are   for
punctuation purposes only.
    In  this manual, the term K is used to mean 1024 (decimal) words,
so when one says a program is  10K  long,  that  means  it  is  10240
(decimal)  words  long, not ten thousand words long.  All numbers are
octal except where noted and where it is obvious.
    If you are not a beginner, you may skip directly to part  B.   If
you  wish  to  use  this  manual for reference, you may want just the
command  summary,  part  I.E.1,  the  COMPILE  switch   index,   part
I.B.4.f.6, or any of the various other summaries.
    You  can  get the latest corrections to this chapter by using the
UPDATE  program.   The  entire   manual   is   on   a   file   called
"S54.ON[S,DOC]".
   
   
This  work  was supported by the Advanced Research Projects Agency of
the Department of Defence under Contract SD-183.





                                 1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

KEYWORD INDEX TO CHAPTER I

I.A BEGINNER'S GUIDE TO CONSOLE COMMANDS
	I.A.1 GETTING ON AND OFF THE MACHINE
		Definition of logging in.
		Turning your teletype on and off.
		The login ritual.
		Definition of project-programmer names.
		Logging out.
		Example of loging in and out
	i.A.2 ELEMENTARY CONSOLE COMMANDS
		I.A.2.a OVERVIEW OF PROGRAMMING
		I.A.2.b DEFINITION OF FILE.
		I.A.2.c CREATING, EDITING, AND MANIPULATING FILES
			DIRECTORY command, prints out your files
			DELETE command to eliminate files.
			CREATE command to generate files.
			Notes on the text editor.
			Examples of the usage of the above commands.
		I.A.2.d TRANSLATION, LOADING, AND DEBUGGING OF PROGRAMS
			TRY command
			Translator errors.
			Loading and running your program.
		I.A.2.e RE-EDITING AND LISTING OF PROGRAM FILE
			EDIT command.
			TYPE command.
			LIST command.
		I.A.2.f A NOTE ON THE DIFFERENCE BETWEEN MONITOR
			COMMANDS AND USER COMMANDS.
	I.A.3 SPECIAL TELETYPE CHARACTERS
		I.A.3.a STOPPING YOUR PROGRAM.
		I.A.3.b LINE EDITING - RUBOUT KEY.
		I.A.3.c LINE EDITING - CONTROL-U
	I.A.4 A TYPICAL SHORT SESSION WITH THE COMPUTER
I.B REFERENCE MANUAL ON CONSOLE COMMANDS
	I.B.1 DEFINITION OF FILE DESCRIPTOR
	I.B.2 COMMANDS TO LOG IN AND LOG OUT
		LOGIN command.
		KJOB command.
	I.B.3 COMMANDS TO MANIPULATE FILES
		DIRECTORY command
		ZERO command.
		DELETE command.
		RENAME command.
		LIST command.
		TYPE command.
		CREATE command.
		EDIT command.
		COPY command.

                                 2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

		TRANSFER command.
		SEND command.
	I.B.4 COMMANDS TO EFFECT TRANSLATION AND PROGRAM LOADING
		I.B.4.a COMPILE command.
		I.B.4.b DEBUG command.
		I.B.4.c TRY command.
		I.B.4.d EXECUTE command.
		I.B.4.e LOAD command.
		I.B.4.f COMPILE OPTIONS AND FEATURES
			I.B.4.f.1 GENERATION OF .REL FILES
				Standard file name extensions.
				Overriding file name extension.
				Non-standard processors.
				Creation date checking.
				Compiling multiple files as one.
				Naming the .REL file.
				Using brockets (<>) for multiple files
			I.B.4.f.2 PRODUCING SYMBOLIC LISTINGS
				/LIST and /NOLIST specifications.
				/CREF specification.
			I.B.4.f.3 COMMAND FILES
				Definition and usage.
				Recursive properties.
				Semi-colon feature.
			I.B.4.f.4 GENERATION OF CORE IMAGES
				The Loader.
				Dump files.
				Library searches.
				Loader switches.
			I.B.4.f.5 NONSTANDARD PROCESSOR FEATURES
				Suppression of loading.
				.REL file existance.
			I.B.4.f.6 INDEX OF COMPILE SWITCHES
			i.b.4.f.7 INTERNAL WORKINGS
	I.B.5 COMMANDS TO MANIPULATE CORE IMAGES
		SAVE command.
		RUN command.
		GET command.
		R command.
	I.B.6 COMMANDS TO START A PROGRAM
		START command.
		DDT command.
		REENTER command.
		CONTINUE command.
		CSTART command.
		CCONTINUE command.
	I.B.7 COMMANDS TO GET INFORMATION FROM THE SYSTEM
		SYSTAT command
		COREX command.

                                 3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

		DAYTIME command
		TIME command.
		PJOB command.
		PPPN command.
		RESOURCES command.
		HELP command.
	I.B.8 COMMANDS TO ASSIGN AND RELEASE RESOURCES
		I.B.8.a DEFINITION OF ASSIGNING A DEVICE.
		I.B.8.b DEFINITION OF LOGICAL DEVICE NAME.
		I.B.8.c ASSIGN COMMAND.
			List of physical device names.
			Usage of logical names.
		I.B.8.d DEASSIGN COMMAND
		I.B.8.e FINISH COMMAND
		I.B.8.f REASSIGN COMMAND
		I.B.8.g SLEVEL COMMAND
		I.B.8.h CORE COMMAND
	I.B.9 COMMANDS TO MANIPULATE YOUR TELETYPE ASSIGNMENT.
		TALK command.
		DETACH command.
		ATTACH command.
	I.B.10 SPECIAL TELETYPE CHARACTERS
		Control-C.
		Rubout key.
		Control-U.
		Control-O.
		Control-Z.
		Control-P.
		Control-F.
		Control-B.
	I.B.11 COMMANDS TO DUMP AND RESTORE THE DISK
		DUMP command.
		RESTORE command.
		BACKSPACE command.
		ADVANCE command.
		REWIND command.
		DAMMIT option.
		PICKUP option.
		IDUMP command.
		TLIST command.
		EOT command.
I.C USAGE OF CONSOLES OTHER THAN THE MODEL 33 TELETYPE
	I.C.1 MODEL 35 TELETYPE
	I.C.2 MODEL 37 TELETYPE
	I.C.3 III DISPLAY CONSOLES
	I.C.4 ARDS STORAGE-TUBE DISPLAY
	I.C.5 STANFORD CHARACTER SET
I.D HANDLING OF OTHER DEVICES
	I.D.1 CARE AND FEEDING OF THE LINE PRINTER

                                 4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	I.D.2 MOUNTING DECTAPES
	I.D.3 MOUNTING MAGNETIC TAPES
I.E SUMMARIES
	I.E.1 ALPHABETICAL COMMAND INDEX
	I.E.2 LOADER SWITCHES
	I.E.3 ERROR MESSAGE INDEX












































                                 5

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.A BEGINNER'S GUIDE TO CONSOLE COMMANDS

I.A.1 GETTING ON AND OFF THE MACHINE
    The first step in using the computer is learning how  to  get  on
and  off  the  machine.   For  beginners,  I  suggest you direct your
efforts toward a teletype, rather than a display console, for reasons
of simplicity.
    The  process  of  getting  on the machine is called "logging in".
Once you have a job in mind that you wish the machine to do,  you  go
to  a  teletype  and  be seated.  There is a grey plastic knob on the
lower right-hand side of the teletype that is the power  switch.   It
has  three  positions:  on,  off,  and  local,  in that order turning
clockwise.  In the local position, the teletype is not talking to the
computer,  but  is  little  more  than  a  typewriter! To talk to the
computer, turn the switch to the "on" position.  When it is  in  this
position,  typing  "carriage-return"  will cause the computer to type
back a period, to let you know it is listening.  At this  point,  you
are  talking  to  a program that the computer is executing called the
monitor, or the time-sharing system.
    The terms "monitor" and "system" will be used interchangeably  to
mean the time-sharing system.  You can always tell if you are talking
to  the  monitor  because  it  types  a  period  when  you   type   a
carriage-return.   The monitor is not very smart and is only good for
calling in programs for you.
    The first program you should call in is the log-in program.   You
do  this  by  typing  "LOGIN"  (may be abbreviated "L") followed by a
carriage-return.  All commands to the monitor must be followed  by  a
carriage-return,  or the monitor will not know that you have finished
typing a command and expect it to do something!
    The monitor will read the login program from the disk  into  core
memory  and  will  transfer  control  of  your  teletype to the login
program so everything you type now will go to the login program,  not
to  the  monitor.  Before the login program is called in, the monitor
will assign you a job number for system bookkeeping purposes, but you
do  not have to be concerned with it.  You will then get typeout from
the computer that looks something like this:
   

JOB 5	STANFORD 3.27/13
#
   
   
Now in these two lines, it has told you your job  number,  the  place
where  the computer is, and the system number, 3.27/13, which changes
every time a modification is made to the monitor.  The sharp sign (#)
is  typed  by the login program and it means it is waiting for you to
type your identification.
    Our identification scheme is in the form  of  project  names  and
programmer names.  If you are working with the hand-eye project, your

                                 I.A.1-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

project designation is "H", if you work for the systems  group,  your
project   designation   is   "S",   and   so   on.   Your  programmer
identification is a unique set of  one  to  three  letters  that  are
assigned  to  you  by Les Earnest.  People usually use their personal
nicknames or initials for this.
    The login program expects you to type your project name  followed
by  a  comma,  followed  by  your  programmer  name,  followed  by  a
carriage-return.  For example, I work for the systems  group  and  my
initials  are  J.A.M.   I  would  then  type  "S,JAM"  followed  by a
carriage-return.  The machine will signify  its  acceptance  of  your
identification  by  typing your teletype identification, the time and
date, the message of the day, and then finally this:
   

↑C

.
   
   
This signifies that the login program has taken the standard exit and
has  returned you to the monitor.  You are now logged in and may call
in other programs.
    When you are ready to leave, you type "KJOB" (may be  abbreviated
"K") to tell the monitor that you are leaving so it can give your job
number to the next person who needs it.  It will  respond  by  typing
"KJOB" back at you, confirming that you are officially logged off and
the teletype is now free.  You should then turn off the  teletype  by
returning the grey plastic knob to the center position.
    To  review,  I  will  represent the things you type by lower case
letters and the things the  machine  types  by  upper  case  letters,
whereas in reality, a common teletype has only upper case.
   

To log in:

login
JOB 2	STANFORD 3.27/13
#s,jam
1005	2-JUN-69
CONSOLE:	TTY6

THE CHECKERS PROGRAM IS NOW PART OF THE SYSTEM. YOU GET
IT BY TYPING "R CHECKE"

↑C

.



                                 I.A.1-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

To log out:

kjob
KJOB














































                                 I.A.1-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.A.2 ELEMENTARY CONSOLE COMMANDS

I.A.2.a OVERVIEW OF PROGRAMMING
    Now  that  you  know  how  to  get on and off the machine, let me
describe how you do some elementary things.  I assume you got on  the
machine  in  order  to  write  a  program  of  some  sort.  There are
basically three phases to programming.  You start by typing  in  your
program  in  symbolic  notation and storing the symbolic on the disk.
This is done with a program called the text editor.  The second phase
is  translation of your symbolic program into binary machine language
and the loading of the binary into core memory to form what is called
a  "core  image"  of  your  program.   The third phase is testing and
debugging.  When errors are found, you go back to the text editor  to
make corrections in your symbolic program which is still on the disk.
You go through this sequence again and again until your program works
properly.  Then you stop.
    This  description is a bit oversimplified, for there are at least
two other schemes  of  programming  which  you  may  decide  to  use,
depending  entirely  on  your  particular application.  First of all,
there is the LISP system.  This is a powerful programming and editing
system  all  to  itself.   The reference manual on the LISP system is
SAILON number 28.2 entitled "STANFORD LISP 1.6 MANUAL" by Lynn Quam.
    You may decide that your needs are not complex enough to  justify
your  learning  a  formal programming language.  If this is the case,
you may be interested in AID, an interpretive language  designed  for
people  who  really  want  little more than a very sophistocated desk
calculator.  AID is an  essentially  numerical  language  and  allows
quick and easy arithmetic.
    If  you  wish to run a program, you first type your program in to
the text editor.  You also make up a name for your program.  You tell
the text editor the name you have decided upon and it will store your
program as you type it on the disk and give it that  name.   You  can
then  translate  the program by calling in a translator and giving it
the name of the program you wish to translate.

I.A.2.b FILES AND FILE NAMES
    Some discussion is in order at this point about how to store data
on  the disk.  Data is stored on the disk in what are called "files".
When you first type your program in to the text  editor,  the  editor
keeps  itself  busy  by  taking  the  characters  you  are typing and
generating a disk file from them.  When you translate  your  program,
the  translator reads this file you have created and generates a core
image from it.  Now since each person may have dozens  of  files  and
there  may  be lots of people on the machine at any given time, there
must be a system for keeping all these files separate.  We do this by
giving  each user a unique area on the disk that is identified by his
project-programmer name, and each file you create must  be  named  so
you can keep your own files straight.
    Files  have  a first name and a last name.  The first name is the

                                 I.A.2-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

actual name of the file and the last name is to indicate what  is  in
the  file.   The first and last names are separated by a period.  The
first name may be 1 to 6 characters long.  Now, if you were writing a
program in SAIL, our version of ALGOL, the last name of your file has
to be SAI.  If you are writing in FORTRAN, the last name  has  to  be
F4.   So,  if  you are working on, let us say, the two-point boundary
value problem and the program is in SAIL, you might  call  your  file
"TPBVP.SAI".   If you are writing a program in SAIL that computes the
sine of an angle, you might call it "SINE.SAI".  The only time you do
not  need  a  last  name  is  when  you  are writing a program in our
assembly language, called FAIL.  The last name of a  file  is  called
the  "file name extension" in the literature.  It might be noted here
that since files are identified by their complete  name  and  by  the
project-programmer  name, two different users could use the same file
name and as long as they had different project-programmer names,  the
files would be entirely separate and distinct.

I.A.2.c CREATING, EDITING, AND MANIPULATING FILES
    Now  I shall describe some of the basic commands for manipulating
files.  Lists of files belonging to each user are kept on  the  disk.
These  are  called  the  users  "directories".  You can find out what
files you have by asking the machine to type out your directory.  You
do  this by typing "DIRECTORY" (may be abbreviated "DIR") followed by
a carriage return.  This will type out the names of all  your  files,
their  creation  dates,  and their length in PDP-10 words.  There may
also appear in your  directory  files  which  you  didn't  explicitly
create.   Don't  worry  about  these,  because intermediate files are
often created for temporary storage purposes by programs you may have
used.
    For  example,  if  you have a file "COSINE.SAI" and you translate
it, SAIL will generate a  file  called  "COSINE.REL",  which  is  the
relocatable binary image of your file.  The text editor makes up file
names to store partially edited files.  The text editor`s  names  are
like  "#M@[&.TMP"  and  are  deliberately  unpronouncable.   You  may
recognize the above two types of intermediate  files  by  their  last
names REL and TMP.
    You  can  delete  a  file  by typing "DELETE" followed by a space
followed by the name of the file you wish to  delete  followed  by  a
carriage-return.
    You create a file by saying "CREATE" followed by a space followed
by  the  name  of  the  file  you  wish  to  create  followed  by   a
carriage-return.  This calls in the text editor and has it initialize
that file name and accept input from your teletype.  From this  point
on,  you  are  expected  to  type in your program, line by line.  The
editor will type a line number at the beginning of each line that you
can use later to reference a given line to make corrections to it.
    At  this  point  it  might be wise to read the manual on the text
editor.  The manual is called "STOPGAP"  by  William  Weiher  and  is
SAILON  (Stanford  Artificial Intelligence Laboratory Operating Note)

                                 I.A.2-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

number 50.  Copies are available  at  the  A.I.   Laboratory  in  the
alcove outside the Xerox room.
    On  a  subsequent  session  with  the computer, you may modify an
existing text  file  by  typing  "EDIT"  (may  be  abbreviated  "ED")
followed  by  a space followed by the name of the file, followed by a
carriage-return.  This will call in the text editor and tell  it  you
wish  to make corrections to that file.  The editor will respond with
an asterisk and await your corrections.  You may not edit files whose
last  name  is  REL  or  TMP,  for these are not really complete text
files.  The following is an example of the usage of  the  CREATE  and
DELETE commands.  In this example, a two line SAIL program called FOO
is created and then deleted.  Again, the things you would type are in
lower case and the things the computer would type are in upper case.
   

create foo.sai
00100	begin title foo;
00200	end;
00300	$
*e

EXIT
↑C

.delete foo.sai

DELETED:	FOO.SAI
EXIT
↑C

.
   
    In  the  above  example, I have used two commands that I have not
defined.  I have used the alt-mode (which prints as dollar sign  ($),
on  line 00300), and the "E" command.  These are commands to the text
editor.  If you have read the manual  on  the  text  editor,  (SAILON
number  50  entitled "STOPGAP" by William Weiher) you will know about
these commands.
   
   

I.A.2.d TRANSLATION, LOADING, AND DEBUGGING OF PROGRAMS
    OK.  Now that you know how to get on and off the machine, how  to
generate  the text file of a program, how to list your directory, and
how to edit a file, we move on to the translation  and  debugging  of
your  program.  You may try out your program by typing "TRY" followed
by a space, followed by the name of the file that is the program  you
wish  to  try,  followed  by  a carriage-return.  This command does a
bunch of things.  First, it calls in the  apropriate  translator  for

                                 I.A.2-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

your  file.   You  can  tell this has happened because the translator
will type out its name followed  by  the  name  of  the  file  it  is
translating.   For  instance, if you said "TRY TPBVP.SAI" the machine
would type back, two lines down, "SAIL:    TPBVP" At this point,  you
may  get error messages from SAIL, such as "UNDECLARED IDENTIFIER" or
some such.  At this point, you should refer to the appropriate manual
and  see  if  you  can detect your error.  These are syntax errors at
this point, and it means your program must be  changed  in  some  way
before  it  will successfully translate.  The appropriate manuals are
"GOGOL III" by Dan Swinehart, SAILON number 48 for GOGOL,  "SAIL"  by
Dan  Swinehart,  SAILON  number  57  for  SAIL,  and for the assembly
language, "FAIL" by Phil Petit, SAILON number 26.1.
    Assuming your program contains no syntax errors, the machine will
proceed  by  typing  "LOADING".   This  means  SAIL (or whatever) has
finished successfully.  At this point, there will be a file  on  your
disk  area  with  a last name REL and the same first name as the text
file that is your program.  This is where SAIL stores the results  of
its  translation.   This  is called the "relocatable" binary image of
your program.  A program called the Loader now converts your REL file
into  a core image.  When that is done, it will type "LOADER #K CORE"
which means it successfully  generated  a  core  image  which  was  #
thousand words long.  At this point, your freshly compiled program is
started and what happens next depends on the compiler and  you.   You
now  enter the magic world of program debugging, which I will discuss
later.

I.A.2.e RE-EDITING AND LISTING OF PROGRAM FILES
    Now, if you find an error in your program, you may  go  back  and
correct it with the text editor by typing control-C (see part I.A.3.a
below) to get  back  to  the  monitor  followed  by  "EDIT"  (may  be
abbreviated  "ED")  followed  by  a  space  followed by the file name
followed  by  a  carriage-return.   When  you   finish   making   the
corrections,  you  can  try  out  your  program again by typing "TRY"
again, and so on.  After you have typed an EDIT  and  a  TRY  command
once  giving  the file name with each one, you may omit the file name
from subsequent EDITs and TRYs and it will continue to take the  same
file each time.
    If  you  decide  you need a new printout of your program, you may
get one by either of  two  commands.   "TYPE"  followed  by  a  space
followed  by  the name of the file followed by a carriage-return will
have the machine type out the file on your teletype.  If the file  is
very long, this may be a rather lengthy process.
    An  alternative  is  to  use  the line printer, which is about 50
times as fast as a teletype.  To do this, you should first have  read
Section  I.D.1,  entitled "The Care and Feeding of the Line Printer".
If no one else is using the line printer, type "LIST" followed  by  a
space followed by the name of the program you want listed followed by
a carriage-return.  This will type  your  program  out  on  the  line
printer and return to the monitor.

                                 I.A.2-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I


I.A.2.f A NOTE ON THE DIFFERENCE BETWEEN MONITOR AND USER COMMANDS
    Please  note  at  this  point  that  all  of  the commands I have
described in this section can only be typed  to  the  monitor,  which
means they are not valid until the monitor has typed a period to you,
signifying that it is waiting for you to type one of these  commands.
When you are editing a file, you cannot just type "DIR", for example,
and expect to get anything.  It will just say "* COMMAND ERROR *" and
go  on.   This  is because if you are editing, you are talking to the
editor, not to the monitor, and "DIR" is a monitor  command,  not  an
editor command.  You get from the editor to the monitor by typing "E"
and waiting for the monitor to type a  period.   You  may  then  type
another command.  These commands are called monitor commands, because
only the monitor will recognize them.




































                                 I.A.2-5

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.A.3 SPECIAL TELETYPE CHARACTERS

I.A.3.a CONTROL-C, STOPPING YOUR JOB.
    Now that you know how to translate, test, and list your file, let
me  describe  some  of  the  finer  points  of communicating with the
monitor.  On the teletype, there is a key  marked  "CTRL".   This  is
called  the  "control" key.  If you press the control key and keep it
depressed while you press any other key, it will not type the  letter
that  is  printed  on the key, but rather the "other meaning" of that
key, if any.  In this way, we may use twice  as  many  characters  as
there are keys on the keyboard.
    For  example,  control-A  (which  means  the "CTRL" key depressed
while you type the letter "A")  is  actually  a  "↓",  or  downarrow.
While  these  characters do not print on a teletype, they do print on
the  line  printer  and  the  display  screens.   There  are  special
provisions  in  the text editor for typing all the special characters
without having to type the control key.  See the STOPGAP manual for a
complete  description  of this.  There is affixed to most teletypes a
list of the special characters and  their  representations  that  the
text editor recognizes.
    There  are  many  special  characters  that are recognized by the
System, which is constantly monitoring all the characters  you  type.
Most of the time, the System just passes all the characters on to the
program you  are  using,  but  there  are  four  notable  exceptions.
Control-C  (which  the  monitor  recognizes  and  tells  you  it  has
recognized it by typing back "↑C") causes the  monitor  to  stop  the
program  that is currently running and take control of your teletype.
You may then type another monitor  command.   Sometimes  the  monitor
will  not  respond and requires you type control-C twice to make sure
you really mean it.

I.A.3.b LINE EDITING - RUBOUT KEY
    Another special character is the rubout key, which permits typing
errors  to  be  corrected.   The monitor intercepts the character and
deletes the character you typed just before the rubout.  Typing  many
rubouts  will cause that many characters to be deleted.  For example,
if you were trying to type DIRECTORY and you got as  far  as  DIREKG,
you  could  correct  your  error  by  typing two rubouts and then the
correct letters.  The monitor inserts some extra  typeout  while  you
are doing this to make your copy more legible.  In the above example,
your typeout would end up like this:  DIREKG\GK\CTORY.   Notice  that
all  you  typed  was two rubouts, but "\GK\" was printed, which shows
the letters that were deleted in reverse order!

I.A.3.c LINE EDITING - CONTROL-U
    If you decide that you have completly mistyped the line  and  you
wish  to start over again, typing control-U (CTRL key depressed while
typing the letter "U") will cause the entire line to be erased so you
can   try   again.    Be   careful,   because  once  you  have  typed

                                 I.A.3-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

carriage-return, your  command  has  been  taken,  and  line  editing
features are no longer valid.  I mean, you can't edit a line that has
already been read by the computer, and lines generally get read  when
you type carriage-return.

I.A.4 A TYPICAL SHORT SESSION WITH THE COMPUTER
    To  summarize this section, I will give you a sample session with
the computer that uses most of the  commands  in  this  section.   As
always,  your characters will be lower case and the computers will be
upper case:
   







































                                 I.A.4-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I


login
JOB 3	STANFORD 3.27/13
#s,jam
1005	2-JUN-69
CONSOLE:	TTY2

THERE WILL BE A USER'S MEETING AT 2:00 TODAY

↑C

.create test.sai

00100	begin title test;
00200	comment ⊗ Test program for illustration purposes only. Do not
00300	take seriously⊗;
00400	end;
00500	$
*e

EXIT
↑C

.try test

SAIL:	TEST

LOADING

LOADER 12K CORE

EXIT
↑C

.edit test.sai

*p100
00100	BEGIN TITLE TEST;
*e

EXIT
↑C

.delete test.sai

DELETED:	TEST.SAI
EXIT
↑C


                                 I.A.4-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

.kjob
KJOB
















































                                 I.A.4-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B REFERENCE MANUAL ON CONSOLE COMMANDS

I.B.1 DEFINITION OF FILE DESCRIPTOR
    Let me begin our discussion of the advanced commands by  defining
a  few  terms.   First, a "file descriptor" is the way you identify a
file.  In its simplest form, a file descriptor may  be  just  a  file
name,  like  "FOO"  or  "FOO.REL".   In these two cases, your file is
assumed to be on the disk.  Dectapes have a  file  system  all  their
own,  so  there must be a way of specifying this to the system.  This
is done by typing the device name followed by a colon followed by the
file  name.  The standard name for the disk is DSK, so the file "FOO"
can be identified as "DSK:FOO" and mean the same thing.  The standard
name  for  a dectape is DTA followed by the dectape number, 1 through
4.  So "DTA2:FOO" is the way we would specify a  file  named  FOO  on
dectape drive 2.
    We  may  also  reference  other  user's  files  on  the  disk  by
specifying the file name and the project-programmer name of the  user
who  owns the file.  So if you wanted to refer to a file JOB.REL that
belonged  to  user  S,JAM,  you  could  do   so   by   typing   this:
"JOB.REL[S,JAM]".   You could have preceeded that with "DSK:", but it
is generally not necessary.  Thus, if you wanted to get a listing  of
the   file   "TPBVP.SAI"   that   belonged  to  "H,HE",  the  command
"LIST TPBVP.SAI[H,HE]" would do just that.
    In summary, a generalized file descriptor then  is  in  the  form
"DEV:FIL.EXT[PJ,PR]"  where DEV stands for a standard device name (if
ommitted DSK is assumed), FIL stands for any legal file name, EXT  is
the  file  name  extension if any, PJ,PR is a project-programmer name
(if ommitted, the one used when you logged in will be used).






















                                 I.B.1-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.2 COMMANDS TO LOG IN AND LOG OUT . . .

LOGIN
   
    May be abbreviated "L".  Monitor assigns you  a  job  number  and
calls in the log-in program.  This program types a sharp sign (#) and
expects you to type your project-programmer name.   If  you  separate
your  project  and  programmer  names  with a comma, it will type the
message of the day.  If you type your project  and  programmer  names
separated  by  a slash (/) it will type the message for you once, but
will not type it again until the message has been changed.
    You may also have a message from some other user waiting for you.
If  so,  you may have it printed out at this time.  The login program
will then ask you if you wish to  delete  the  message.   You  should
delete the message as soon as you are done with it.
    To   leave   a   message  for  someone,  you  log  in  under  the
project-programmer name 2,2 and create  a  file  whose  name  is  his
programmer name and whose extension is MSG.  For example, if I wanted
to leave a message for a user whose project-programmer name is S,DCS,
I  would  log  in  under 2,2 and create a file called "DCS.MSG" which
contained the message.  He could receive the message the next time he
logged in.
    There  is  an  easier  way  to  send  a message to somebody.  For
details, see the SEND command at the end of section I.B.3.
    If there exists a file called "OPTION.TXT" on your directory when
you  log  in,  and  if  it  contains  a  line of text that looks like
"LOGIN:    CHECK;", then the LOGIN program will  type  out  "checksum
today?"  and  will  wait  for  you  to  respond.   If you type "Y", a
checksum will be formed of each of your files and will be placed in a
file  called  "CKSUM.DAT"  on  your  disk area.  If this file already
exists, it will be  read,  and  as  the  checksum  of  each  file  is
computed,  it  is  compared to the value in CKSUM.DAT.  If there is a
discrepancy and if the file has not been rewritten since the creation
of the checksum, the file name is typed out.  In this manner, you may
tell if one of your files has become garbaged.
   

KJOB
   
    May be abbreviated "K".  Causes your job to be cleared, your  job
number  to be deassigned, your assigned devices to be deassigned, and
your teletype to be detached.  Responds by typing "KJOB".
    If there exists a file called "OPTION.TXT" on your directory when
you  log  out  and  if  it  contains  a  line of text that looks like
"LOGOUT:    CHECK;", then the LOGOUT program will type out  "Checksum
today?".  If you respond with a "Y", the checksums of your files will
be computed and compared as with the LOGIN program.  If  you  do  not
respond  within  one  minute,  the  program  will assume the negative
answer and finish logging you out.

                                 I.B.2-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I



















































                                 I.B.2-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.3 COMMANDS TO MANIPULATE FILES . . .

DIRECTORY
   
    May be abbreviated "DIR".  If no argument is given, prints a list
of  the files on your disk area, with their creation dates and length
in  words.   If  followed  by  a  project-programmer  name   (as   in
"DIR [S,SYS]")  will type the directory of that user.  If followed by
a dectape number (as in "DIR DTA4:") will type the directory of  that
dectape.   The  colon  after  the  device  name  is  optional.  It is
included here for historical purposes.
    This command has two other  options.   Including  the  characters
"/L"  in  the  command  line  will cause the output to go to the line
printer, rather than to the teletype.  For example,  "DIR  [S,DWP]/L"
will  list  S,DWP's  directory  on  the  line printer.  Including the
characters "/F" in the command string will cause only the file names,
not the dates or lengths, to be printed.
   

ZERO
    May  be abbreviated "Z".  Must be followed by a device name whose
directory you wish cleared.  At Stanford, this means the  disk  or  a
dectape.   For  example, you can clear the directory of dectape drive
one by saying "ZERO DTA1".  You can delete all  your  disk  files  by
saying "ZERO DSK".
   

DELETE
   
    May be abbreviated "DEL".  Must be followed by a file descriptor,
or may be followed by several file descriptors separated  by  commas.
For  example,  "DELETE FOO" and "DELETE FOO,TPBVP.SAI,COSINE.REL" are
both legal commands and will cause the named files to be deleted from
your  area.   The  command also has some level of generality, in that
either the file name or the file name extension may be replaced by an
asterisk,   meaning   any   file  name.   For  example,  the  command
"DEL *.SAI" will cause all  files  with  file  extension  SAI  to  be
deleted.   The  names of the files will by typed as they are deleted.
The command "DEL FOO.*" will cause all files with first name  FOO  to
be  deleted.  This includes FOO.REL, FOO.SAI, or just plain FOO.  The
command "DEL *.*" will cause all your files to  be  deleted!  If  you
have  leftover .TMP files from the text editor, since you cannot type
their names, "DEL *.TMP" is just about the only way  to  get  rid  of
them.
   

RENAME
   
    May  be  abbreviated  "REN".   If  followed by the command string

                                 I.B.3-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

FILE1=FILE2, where FILE1 and FILE2 are legal file  descriptors,  will
cause  the file named FILE2 to be renamed to the name FILE1, provided
that there is not already a  file  named  FILE1.   For  example,  the
command  "REN FOO.TXT=FOO.SAI"  would cause the file named FOO.SAI to
be renamed to FOO.TXT.  This  means  that  FOO.SAI  would  no  longer
appear in your directory, and FOO.TXT would show up in your directory
containing exactly, word for word, the same data as was  in  FOO.SAI,
because  it  is  the  same  file.  Only the name has been changed.(To
protect the innocent?)
    The asterisk convention may be used here also.  For instance, the
command  "REN *.SAI=*"  would  cause all your files that have no file
name extensions to have the extension ".SAI".
   

LIST
   
    May be  followed  by  a  file  descriptor,  or  a  list  of  file
descriptors  separated  by  commas.   This will cause the named files
(must be text files, not binary files) to be typed out  on  the  line
printer with headings at the top of each page which tell page number,
name of file, and date of  printing.   For  example  "LIST FOO"  will
cause  the file named FOO to be printed.  "LIST FOO,TPBVP.SAI[S,JAM]"
will cause the files FOO and TPBVP.SAI to be printed, the  latter  on
S,JAM's  disk  area.  The command "LIST DTA4:BAZ" will cause the file
named BAZ on dectape drive 4 to be listed.
    You may list only certain pages if you wish by enclosing  a  list
of  page  numbers  in parentheses, separated by commas.  A continuous
range of pages may be listed by giving the starting  and  terminating
page  numbers separated by a colon.  For example, to list pages 1, 3,
and 5 through 7 of the  file  FOO,  the  command  "LiST FOO(1,3,5:7)"
would do just that.
   

TYPE
   
    This  has  the  same  command  format  as  the  LIST command, the
diference is that the output comes out on the  teletype  rather  than
the line printer.
   

CREATE
   
    This command, when followed by a file name, calls in STOPGAP, the
text editor and tells it to initialize a file of  that  name  and  to
enter  insert  mode immediately.  The response to this command is the
first line number, 00100.  You may then  begin  entering  your  file.
For example, the command "CREATE MANUAL.P02" was used to begin typing
in this manual! For further reference on this, you  should  refer  to
the STOPGAP manual, SAILON number 50.

                                 I.B.3-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

   

EDIT
   
    May  be  abbreviated  "ED".  This command should be followed by a
file name.  The monitor  calls  in  the  text  editor,  STOPGAP,  and
directs it to the named file.
    If  you  subsequently  type ED and omit the file name, the System
will remember the name of the last file you edited and  bring  it  in
again.   If  you  have  not  edited anything before, you get an error
message.
    This command has another interesting option.  If you wish to  use
the  editor  not  to  edit  a  file, but simply to locate and inspect
certain parts  of  a  file,  you  may  do  this  in  what  is  called
"read-only"  mode.   You get this by typing "/R" after the file name,
such as "EDIT FOO.SAI/R".  In this mode,  all  of  the  true  editing
commands are illegal.  You may only find and print text in this mode.
    You  may  also  include  a project-programmer name in the command
line.  This will have the effect of copying the  file  to  your  disk
area    and   then   editing   it.    For   example,   if   I   typed
"EDIT SINE.SAI[S,DWP]" and then ended the edit normally, I would find
the  edited copy of SINE.SAI on my disk area, and the copy on S,DWP's
area would have remained unchanged.



COPY

    This command expects a file descriptor followed by a  left  arrow
(←)  followed  by a list of files.  The file on the left hand side of
the arrow is called the "destination file" and the list of  files  on
the  right  hand  side of the arrow is called the "source file list".
This  command  has  the  general  effect  of  reproducing  the  files
specified by the source list under the names and disk areas specified
by   the   destination    list.     For    example,    the    command
"COPY BAZ[S,JAM]←FOO.TMP[S,SYS]"  will  cause a duplicate of the file
FOO.TMP on S,SYS's disk area to be made  on  S,JAM's  disk  area  and
called BAZ.
    You  must  put  either one descriptor in the destination list, or
omit the destination list and left arrow entirely.  These  two  cases
have the following effects:
    If  you  put  several file descriptors in the source list and one
descriptor in the destination list, all the files in the source  list
will  be  copied  and  concatenated  into  one large file and will be
located under the file specified by the destination file  descriptor.
For example, if I wanted to combine the files FOO, BAZ, and BAR on my
disk area into one large file called PROG also on my disk  area,  the
command  "COPY  PROG←FOO,BAZ,BAR" would do just that.  Since both the
source and destination files are on my disk  area,  I  may  omit  the

                                 I.B.3-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

project-programmer   names   from   the  file  lists.   By  inserting
project-programmer names in square brackets after file names,  I  can
copy  files  to  or  from  any  area  on  the  disk,  subject only to
protection and password restrictions.
    If the destination list and the left arrow are ommitted entirely,
the  files  are  copied  one at a time, individually, and are located
under  their  original  names.   For  example,  the   command   "COPY
FOO[S,SYS],BAZ[S,DCS]"  would cause the file FOO on S,SYS's disk area
to be duplicated under the same name on my disk area,  and  the  file
BAZ  on  S,DCS's disk area to be duplicated under the same name on my
disk area.  So when you are copying files from someone's disk area to
your  disk area and you wish them to retain their original names, you
may omit the destination list and the left arrow.
    An asterisk (*) may be used in place of the file name,  the  file
name  extension,  the  project  name,  or the programmer name.  If an
asterisk is used in the source list, it  will  match  anything.   For
example,  if  instead of giving a file name you give an asterisk, all
first names will be  specified.   If  an  asterisk  is  used  in  the
destination list, it implies the same name as the corresponding entry
in the source list.   For  example,  the  command  COPY *.REL[S,SYS]"
would  cause  all the .REL files on S,SYS's disk area to be copied to
your disk area and have the same names as the did  on  S,SYS's  area.
The  command  "COPY *.FOO←*[S,SYS]"  would cause all files on S,SYS's
disk area that have a blank file name extension to be copied to  your
disk  area  and given the same file name but all the extensions would
be .FOO.
    Now, if the file name and extension of any  file  in  the  source
list  is *.*, which would imply all files on that disk area, only the
project-programmer name in brackets need be included.   For  example,
to  copy  all the files on S,SYS's area to my area, all I am required
to say is "COPY [S,SYS]".  This implies that all files on  S,SYS  are
to  be  separately copied onto my area and are to have the same names
on my area as they do on S,SYS's disk area.
    You may copy files to or from devices  other  than  the  disk  by
placing the device name followed by a colon in front of the file name
in question.  For example, the command "COPY  DTA1:←*.*"  would  copy
all  your  files  onto  dectape  drive one.  The command "COPY DTA1:"
would cause all the files on dectape drive one to be copied onto your
disk area.
    If  you  are  copying several files from a disk area to your disk
area, you only have to specify the project-programmer  name  once  in
the source list.  It will stick until another project-programmer name
appears.  For instance, the command "COPY  F1[S,SYS],F2,F3,F4[S,RFS]"
would  copy  onto  my disk area the files F1, F2, and F3 from S,SYS's
disk area and the file F4 from S,RFS's disk area.
    If you copy a file onto another disk area and that  file  already
exists  and  you  ask  to  write  over  it (update it), you may get a
protection violation if you are not in the same project as the  owner
of the file, or if the file is specially protected against you.

                                 I.B.3-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

    If  you  are  copying  lots of files from a device other than the
disk, you only have to specify the device name  once.   For  example,
the command "COPY DTA1:F1,F2,F3,DTA2:F4,F5" would copy onto your disk
area the files F1, F2 and F3 from dectape drive one  and  F4  and  F5
from dectape drive two.
    An  asterisk  may be substituted for the file name, the file name
extension,  the  project  name,  or  the  programmer  name,  or   any
combination.   It  may  not  be substituted for the device name.  For
example, "COPY FOO←[*,*]" would combine all the files on  every  disk
area  into one enormous file and put it on your area and call it FOO.
This is not recommended.  The command  "COPY  [S,JAM]←[*,SYS]"  would
copy  all  the  files  on all disk areas whose programmer name is SYS
onto S,JAM's disk area.
    If you try to copy files onto a disk area which requires that you
give  a password to log in under that project-programmer name, if you
are not logged in under that  project-programmer  name  already,  you
will  be asked to give the password for the area.  This is to prevent
unauthorized persons from writing over the system files.
    Device names and project-programmer names are  sticky,  that  is,
once  they  appear  in a command line, they are assumed in effect for
the remainder of the command line, unless specifically  countermanded
by  another device name or project-programmer name.  For example, the
commands  "COPY  DTA1:FOO,DTA1:BAZ"  and  "COPY  DTA1:FOO,BAZ"   have
exactly  the  same  effect,  which  is  that the files FOO and BAZ on
dectape drive one are copied onto the disk under their same names.
    If a file you asked to copy already exists,  you  will  be  asked
whether you really want to write over the file or not.
    If  any of the files you have specified in the source list do not
exist (this applies only where an asterisk is not used for  the  file
name  or  file  name  extension)  you  will  be  given  the option of
reconsidering.
    There are further specifications you  may  make  by  including  a
slash  (/)  followed  by  one  of  the following terms, followed by a
space.  You only need to type enough characters of the switch name to
uniquely distinguish it from the other switches.
    The  following  is  taken  from  the  COPY SAILON, number 61, and
describes the switches.  For more complete information  on  COPY  and
its features, one should read SAILON 61, the COPY manual.

       Switches appearing in  the  destination  term  are  always
       sticky.   Switches appearing in the source term are sticky
       only if they preceed the  term  with  which  they  appear.
       Otherwise  they  apply  only  to  the curent term and must
       follow it.  Only the first six characters of a switch  are
       scanned,  the  rest are thrown away.  It is only necessary
       to use enough characters to uniquely specify the switch.
          
The following switches are now available:
   

                                 I.B.3-5

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

   
   
SWITCH *** ABBREV *********** MEANING ***************************

DUMP        DU           This causes each 36 bit  word  from  the
                    input  device  to  be  converted to the ascii
                    representation  of  the   octal   number   it
                    represents  and to then be sent to the output
                    device.  The following  format  is  used.   A
                    "word  number"  is  sent to the output device
                    which indicates which word in the file is the
                    first  word  in  this row.  Then 8 data words
                    are transfered.  Then a <cr><lf> is inserted.
                    If  the  input  device  cannot  do image mode
                    transfers the switch is ignored.

QUIET       Q            This switch  merely  prevents  you  from
                    getting    the    message    "File    already
                    exists........."  .    If  the  output   file
                    already exists it is deleted without a sound.
                    Also if this switch appears with /SEARCH then
                    only the p,pn and the size on that  p,pn  are
                    printed.

LIST        L            This  causes  the  names  of  the  files
                    transfered during that term to be listed.  If
                    the  input  device is the disk the [p,pn] are
                    also  listed.   Non-directory  devices   will
                    obviously  list  nothing.  The output will go
                    to the "list term".   If  the  list  term  is
                    absent the output will go to the TTY.

PROTECTION=nnn   P       This causes the output file to have  the
                    protection  nnn  where n is a digit from 0 to
                    7.  If no protection switch is specified  the
                    protection  of  the  input  file  is used(for
                    non-disk input 000 is used).  All  three  n's
                    must be present.  This switch applies only to
                    disk output.  When  concatinating  files  the
                    protection   applicable  to  the  first  file
                    transfered is used.

NONUMBERS   N            This deletes  line  numbers  from  files
                    that  have them (If the file appears to be of
                    stopgap format) and compresses what is left.

DENSITY=n   DE           This sets the density in bpi to n  where
                    n  equals  800,  556, or 200.  This switch is
                    ignored  for  devices  other  than  magtapes.

                                 I.B.3-6

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

                    The default density is 556.

ODD         OD            This  sets  magtape  transfers  to  odd
                    parity.  This mode is  standard  and  is  the
                    default option.

EVEN        EV           This  sets  magtape  transfers  to  even
                    parity.

BLOCKED     B            This  causes  records  to  be  ended  on
                    output  whenever  they  are  ended  on input.
                    This switch  overrides  the  NONUMBERS switch
                    unless  the  output device doesn't know about
                    records (e.g.  the line printer).

MLENGTH=nnnn   M         This allows the user to specify variable
                    length records for magtape IO where nnnn is a
                    1 to 4  digit  number  interpreted  in  octal
                    which  specifies the number of data words per
                    record.

ASCII       A            This forces transfers to  be  in  ascii.
                    It  overides  switches that require the image
                    mode.  Beware! This switch will cause stopgap
                    line numbers to become part of the text.

SEARCH      SE           This switch overides all other switches.
                    It  gives you more information than /LIST and
                    suppresses any transfers.  Added to the /LIST
                    info  you  get  the  size  of  the file in 1K
                    blocks,  the  date  and  time  it  was   last
                    written,  the protection, and the mode it was
                    written in.  This is preceeded by a  suitable
                    heading.  The whole smear is preceeded by the
                    current date and time.   If  the  information
                    does  not exist it is not listed.  If you try
                    to SEARCH a non-directory device you will get
                    a  strange  answer.   The  output goes to the
                    same place as with /LIST with  the  following
                    variation.  If the "list term" is omitted the
                    listing goes to the TTY and  the  information
                    and  heading for disk input will be truncated
                    to  FILENAME.EXT, [P,PN], and SIZE. If /QUIET
                    is used with this switch and no list term was
                    specified only the p,pn and the total size of
                    each disk area is printed.

RENAME      R            A rename is done on  the input file with
                    the  output  file information. /QUIET applies

                                 I.B.3-7

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

                    when the output filnam.ext already exists.

FAST        F            All  the names specified by  the  source
                    term  are  listed  (no  size  or other info).
                    This  switch  is  therefore  much faster than
                    /SEARCH.

KILL        KI           The input  file  is  deleted  after  the
                    transfer is finished,   even  if  the  output
                    filename is the same as the input filename.

OPTIMIZE    OP           This forces copy to believe that a  file
                    is  of  stopgap format and therefore performs
                    all the proper magic.

TITLE       T            This causes a "title page" to be put out
                    in  large  block  letters  followed by a form
                    feed. The title is of this form:

				FILNAM.EXT

				P,PN

				TIME

				DATE

                         The date and time are when the file  was
                    last  written.  The  only legal input devices
                    are disk and dectape,  or  magtape  with  the
                    /SAVE switch, all others will be ignored.

SAVE        SA           If  the  output device is a magtape four
                    words of directory info are written.  If  the
                    input  device  is  a  magtape  four  words of
                    directory info are read and compared with the
                    source  name  specified.  If they don't match
                    that file is skipped and  the  next  examined
                    until  a match is found or the end of tape is
                    reached.

HEADER      H            This  causes  a  header to be put out at
                    what  would  be  the  top of each page on the
                    line printer. The header looks like this:

		PAGE N-M       FILNAM.EXT    P,PN     DATE  TIME

                         The current  date  and  time  are  used.
                    Where N is the logical page number (number of

                                 I.B.3-8

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

                    form feeds seen plus  one).   And  M  is  the
                    physical page of that logical page.

CONVERT     C            This causes copy to treat the  character
                    following  a  line  feed as a fortran control
                    character. Be careful, this happens on output.

EXTRA=n     EX           Whenever a line feed  is  seen  n  extra
                    line feeds are put out, n must be an unsigned
                    decimal integer.

KTOTAL      KT           At the beginning of the execution  of  a
                    term  the  term is printed. At the end of the
                    term  the  TOTAL=  is  forced  out,  if  any.
                    This is only legal for /SEARCH.
   
   
   
    Thus  ends  the  description of the COPY switches.  There are two
more file manipulating commands which are related to copy.  They  are
as follows:



TRANSFER

    This  is the same as COPY except that it deletes the source files
as it copies.



SEND

    This command is to send a personal message.  If one  types  "SEND
DCS"  followed  by a carriage-return, you may then type your message,
followed by a control-Z.  The person whose  programmer  name  is  DCS
will get the message the next time he logs in.













                                 I.B.3-9

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.4 COMMANDS TO EFFECT TRANSLATION AND PROGRAM LOADING . . .

I.B.4.a COMPILE
   
    May be abbreviated "COM".  This command should be followed by one
or more  file  descriptors,  separated  by  commas.   It  causes  the
appropriate  translator  to  be  called  in  to translate each of the
files.  It determines the appropriate translator  by  the  file  name
extension,  SAI  for  SAIL,  F4  for  FORTRAN, and so on.  It decides
whether the file must be compiled by comparing the date  of  creation
of  the  file with the date of creation of the REL file with the same
first name.  If there is no REL file, or if the text  file  has  been
edited,  signified  by  having  a  more  recent date of creation, the
program will be translated again.  If the REL file is up to date, the
command  exits  immediately.   There are several options this command
has.  For a more complete writeup on all  the  various  options,  see
SAILON number 51, entitled "RPG: RAPID PROGRAM GENERATION" by William
Weiher, or see part I.B.4.f for a longer explaination.
    This command, like the EDIT command, remembers the file name.  If
you  do not type a file name, it uses the last one you typed, but the
editing file name and the compiling file names are kept separate.   I
mean, if you say "ED FOO" and then "COM BAZ", and then "ED", you will
end up editing FOO.  If you then say "COM",  the  file  BAZ  will  be
compiled if necessary.
    There  is  another interesting option.  You can generate assembly
listings of your translations  by  including  "/L"  or  "/C"  in  the
command  line.   "/L" produces a file with the same first name as the
one you asked to compile and a last  name  LST.   This  file  may  be
printed   out   to  get  your  assembly  listing.   "/C"  produces  a
cross-referencing in addition to a  listing,  but  cannot  be  listed
directly.   To  list  a cross-referenced listing, you may type "CREF"
when your translation is done and get your listing.
    Please note that this command does not  generate  a  core  image.
You will have to use one of the following commands to do so.
   

I.B.4.b DEBUG
   
    May be abbreviated DEB.  This is the same as COMPILE, except that
it loads a copy  of  DDT  (Dynamic  Debugging  Technique)  with  your
program.   Instead  of  jumping directly into your program, it starts
DDT.  You may then give a command to DDT to start  your  program.   I
suggest you read the DEC manual on DDT before you attempt to use this
or the next command.  This command generates a core image and  starts
DDT.
   

I.B.4.c TRY
   

                                 I.B.4-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

    This  is  like  COMPILE,  except it loads a copy of DDT with your
program.  This  command  generates  a  core  image  and  starts  your
program.
   

I.B.4.d EXECUTE
   
    May be abbreviated EX.  This is like TRY, except it does not load
DDT.  This command generates a core image and starts your program.
   

I.B.4.e LOAD
   
    This is like COMPILE except that it generates a  core  image  and
then  exits  to the monitor.  It does not load DDT, it does not start
your program.
   

I.B.4.f COMPILE OPTIONS AND FEATURES

I.B.4.f.1 GENERATION OF .REL FILES
    The simplest way to translate a bunch of programs  is  to  create
them with file name extensions which define the processor to be used,
and give a single COMPILE command with all these names  separated  by
commas.   The  standard  processors  and  their  recognized file name
extensions are as follows:

EXTENSION	PROCESSOR
   blank	   FAIL
   .FAI		   FAIL
   .SAI		   SAIL
   .GOG		   GOGOL
   .MAC		   MACRO
   .F4		   FORTRAN

    Please note that you are not  required  to  type  the  file  name
extensions  explicitly.   If you type "COM FOO", it will look for any
file with the first name FOO and check it's extension to see if it is
one of the standard file name extensions and act accordingly.
    If  you  do not have the right file name extension for your file,
you can cause the correct processor to be used anyway by giving  that
information  in  the  command  string, preceeded by a slash (/).  For
example, to use SAIL to translate the file SINE, you could  say  "COM
SINE/SAIL".   If you are giving a list of several file names, you may
put the processor name after each file name,  or  before  the  entire
list.  For example, "COM FOO/SAIL,BAZ/SAIL" is the same as "COM /SAIL
FOO,BAZ".  If the processor name preceeds a file name, it is used  as
the  default option.  If it follows a file name and is before a break
character (comma, carriage-return, etcetera) then it only applies  to

                                 I.B.4-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

that  file and does not change the default option.  For example, "COM
/SAIL SINE,IOPACK/FAIL,TJ" would use SAIL on SINE and TJ,  and  would
use FAIL on IOPACK.
    Every  time  you  put a switch like "/FORTRAN" in front of a file
name, it changes the normal mode.   For  example,  "COM  /SAIL  SINE,
COSINE,  /FORTRAN  TANGNT,  COSEC"  would cause SINE and COSINE to be
translated by SAIL,  and  TANGENT  and  COSEC  to  be  translated  by
FORTRAN.
    Perhaps  at  this point, I should remind you that you do not type
any double-quote marks (") in an actual command line.  I put them  in
for punctuation purposes only.
    You  may  specify  a  processor  other than MACRO, FAIL, FORTRAN,
GOGOL, or SAIL by using the non-standard processor feature.   If  you
include  "/NONSTANDARD  DEV:NAME" in the command line, where "DEV" is
the device where this file, NAME, is located and is assumed to be DSK
if omitted (see part I.B.8.c for discussion of the device name), then
it will recognize  anywhere  after  that  on  the  command  line  the
extension ".NAM" and the switch "/NAME" and use that processor on the
file.  The processor must be a saved core image  (see  SAVE  and  RUN
commands  in part I.B.5) and have the file name extension ".DMP", and
must be on your disk area, unless the device is "SYS:", in which case
it  is  assumed  to be on the system library, where FAIL and SAIL and
all the rest are.
    To repeat, if you wished to translate the program  SINE  using  a
processor  named  PROC on your disk area, you could do that by typing
"COM SINE/NONSTANDARD PROC".
    Please be warned that the processor you wish to  use  has  to  be
specifically  designed  for  this  usage.   Not just any program will
work.  To learn how to write programs  which  may  be  used  in  this
manner, see section I.B.4.f.7, entitled "INTERNAL WORKINGS".
    The compilations you request will not take place if there already
exists a .REL file whose creation date is more recent than all of the
files  used  in producing that .REL file.  If you edit any one of the
source files, it will then automatically get its  creation  time  and
date  updated  so  that  it will force re-compilation.  You may force
re-compilation if you wish by including  "/COMPILE"  in  the  command
line.   What  I  mean is that if you say "COM /COMPILE FOO", the file
FOO will be translated regardless of  its  creation  date.   You  may
force  date  checking  again by including "/NOCOMPILE" in the command
line.  If it appears before the file name, it  forces  date  checking
for  the  rest of the command, or until "/COMPILE" appears again.  If
it appears after the file name, it forces re-compilation of that file
only.   Including  "/REL"  will  cause it to forget about looking for
source files at all and just proceed to generating a core image  from
the .REL files (see section I.B.4.f.4).
    It  is  often  desirable  to break a program up into two separate
files so that there is only one END statement  at  the  last  of  the
second  file.   You  can  process  two  files  together  as  one  big
translation by separating their names by a plus sign  rather  than  a

                                 I.B.4-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

comma.   For  example,  the command "COM DATA+PROGRM" would treat the
files DATA and PROGRM as if they were one large file and produce  one
relocatable binary file called "PROGRAM.REL".
    Normally, the REL file will have the name of the last file in the
command string, but you may give it any name you wish by putting  the
desired  name  followed  by  an  equals  sign (=) at the first of the
command string.  To illustrate, "COM FOO=SYMS+PROGRM+IOPACK" would do
one translation as if SYMS, PROGRM and IOPACK were one large file and
produce relocatable binary output on a file called "FOO.REL".
    When you are assembling files this way, you may find  that  there
is  one  file  you  wish  to  assemble  in front of several different
programs.  You might accomplish  this  by  giving  the  command  "COM
ACUMS+SINE,ACUMS+COSiNE,ACUMS+TANGENT"   which   would   make   three
separate assemblies, each with a copy of the  file  ACUMS.   You  may
give this same command more simply by using the brokets (<>) feature.
The command "COM ACUMS+<SINE,COSINE,TANGENT>" would do the same thing
as the previous command.
   

I.B.4.f.2 PRODUCING SYMBOLIC LISTINGS
    One  may  want  an assembly listing of certain of the files he is
translating.  Such a listing has the original code as it  appears  in
the  file  plus the octal values the code represents and the relative
locations that the octal values go in.  One may get such a listing by
including  the  characters  "/LIST" in the command string.  Again, if
the string appears after a file name, only that file's translation is
listed.   If  it  appears  before a file name, listings are made from
that point to the end of the command, unless "/NOLIST"  appears.   If
"/NOLIST"  appears  after  a  file name, it only inhibits listing for
that file.  If it appears before a file name, it inhibits listing for
the  remainder  of  the  command,  unless "/LIST" appears again.  The
listing is put out on the disk and has the same first name as the REL
file, but has the file name extension "LST".
    If  the string "/CREF" appears, rather than "/LIST", it generates
an  expanded  listing  that  includes  a  list  of  all  the  symbols
(identifiers)  your  programs  used  and  the numbers of the lines on
which each symbol  appeared.   This  is  called  a  "cross-reference"
listing.   You  cannot  print  out  the listing file directly, as you
could with a normal listing.  Instead, you must  call  in  a  special
cross-reference  lister.   You  do this by typing the command "CREF",
which prints out on the line printer all the cross-reference listings
you have generated since the last time you typed "CREF".  Please note
that not all the processors can produce  a  cross-reference  listing.
Consult  the  appropriate  manual to find out if a given processor is
capable of generating one.
   

I.B.4.f.3 COMMAND FILES
    If you have a COMPILE command that is too lengthy to fit  on  one

                                 I.B.4-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

line,  or  that is too long to expect to be able to type it correctly
every time, you may create a file with the command in  it  and  cause
the contents of that file to be used as the command.
    For example, if you had 26 files named A,B,C, to X,Y, and Z, then
you could create a file named, for example, "COMAND" which  contained
the  line  "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z", and
you could compile all of those files with the command "COM  @COMAND".
The  at  sign (@) means that the remainder of the command line should
come from the file whose name follows the "@" sign.   This  procedure
is recursive in that the command file may contain an "@" sign and yet
another command file name.
    The command file may contain any and all features that a  COMPILE
command  itself may contain and more.  If your command is too long to
fit in one line, you may place a semi-colon (;) at the  physical  end
of the line, then continue the command on the next line.
   

I.B.4.f.4 GENERATION OF CORE IMAGES
    If  you  give  either  the  EXECUTE, DEBUG, LOAD, or TRY command,
rather than the basic COMPILE command, a core image of some sort will
be  generated.   This is done by first translating the files the same
way the COMPILE command does, and then calling in  a  program  called
the  Loader.  This program takes .REL files and produces a core image
from it.
    With DEBUG and TRY, the Loader is instructed to load  a  copy  of
DDT and the symbol table with your core image.
    If  "/MAP" is included in the command string, the absolute values
of all your symbols are listed in a legible  way  on  a  file  called
"MAP.MAP".
    You  may  produce a disk dump (See SAVE and GET commands, section
I.B.5) of your core image by either including "/DUMP" in the  command
string,  in  which case it will create a dump copy of your core image
with the same first name as the .REL file  and  with  the  file  name
extension ".DMP", or you may explicitly name the dump file by putting
the desired name followed by a left arrow (←) in the command  string,
but  you  still  have  to put "/DUMP" in somewhere.  For example, the
command  "TRY  DUMP←SINE,COSINE/DUMP"  would  first   translate   the
programs  SINE  and  COSINE  individually  to  produce  SINE.REL  and
COSINE.REL, then it would call in the Loader, load DDT.REL  from  the
system library files because it is a "TRY" command, load SINE.REL and
COSINE.REL,  produce  a  dumped  copy  of  the  core  image  entitled
"DUMP.DMP", and then start up your program
    Asking  for  dump  copies  to be produced has another interesting
effect.  If there already exists a .DMP file of the right name and if
it  has a creation date more recent than those of the source file, no
loading will be done.  Instead, the dump copy itself will  be  called
in.   You  may  force reloading by including "/NODUMP" in the command
line.  You may include both an equals sign and  a  left  arrow  in  a
command string.  This example will help to clarify what is happening:

                                 I.B.4-5

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I


   COMMAND			.REL		.DMP
TRY SINE+COS/DUMP		COS.REL		COS.DMP
TRY DUMP←SINE+COS/DUMP		COS.REL		DUMP.DMP
TRY DUMP=SINE+COS/DUMP		DUMP.REL	DUMP.DMP
TRY FOO←DUMP=SINE+COS/DUMP	DUMP.REL	FOO.DMP

    Often,  one wishes to combine many .REL files into one large .REL
file and extract only certain routines at a time.  For instance,  you
might  make  sine, cosine, and tangent routines and combine them into
one file called "TRIG.REL".  If in the future you had a use for  just
the  sine  routine,  but did not wish to load the entire package, you
could  ask  the  loader  to  search  a  file  and  extract  only  the
appropriate  routines  as  needed  by  including "/LIBRARY" before or
after the name of the file that you wish searched.  For example, if I
had  a  program  called  NLT  which used SINE.REL which was a part of
TRIG.REL, I could give  the  command  "LOAD  NLT,TRIG/LIBRARY".   The
Loader would notice that NLT was asking for SINE.REL and would search
TRIG.REL for it.  The program you use to combine many .REL files into
one  library file is called FUDGE2.  It's usage is described in a DEC
manual.  You may suppress library searching by including "/NOSEARCH".
If either of these switches (/LIBRARY or /NOSEARCH) is inserted after
a file name, it only effects that file.  If inserted  before  a  file
name,  it persists until the end of the command or until counteracted
by the inverse switch.  For example, if I had  a  program  NLT  which
used  routines  from the library files TRIG.REL and IOPACK.REL, and I
also wanted to load another program called LT, here are three ways  I
could cause this to happen:

LOAD NLT,LT,/LIBRARY TRIG,IOPACK
LOAD /LIBRARY NLT/NOSEARCH,LT/NOSEARCH,TRIG,IOPACK
LOAD NLT,LT,TRIG/LIBRARY,IOPACK/LIBRARY

    Note  that the programs that use the library files must be placed
before the library file names themselves, because the  Loader  cannot
know  in  advance what routines to extract from each library until it
reaches the programs that use these library routines.
    The Loader has many options all its own.  For  instance,  if  you
wanted  to  load  a copy of RAID, a version of DDT which uses the III
consoles for dynamic register display, you may  do  this.   Normally,
your  symbol  table  is not loaded unless DDT or RAID is also loaded,
but you may override this convention too and cause your symbol  table
to  be  loaded  anyway.  Normally, if DDT or RAID is not loaded, your
core will be contracted to the minimum point so part of  your  symbol
table  may  be  lost.   We  specify  all these various options to the
Loader by including what are called "Loader switches" in the  command
line.  A switch to the Loader consists of a percent sign (%) followed
by one character, such as "%H", or  a  percent  sign  followed  by  a
number,   followed  by  a  letter,  such  as  "%140O".   There  is  a

                                 I.B.4-6

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

description of all these switches and  their  usage  in  part  I.E.2,
entitled "LOADER SWITCHES".



I.B.4.f.5 NONSTANDARD PROCESSOR FEATURES
    When  a standard processor is used, it is known that it will take
a text source file and produce a binary .REL  file,  and  possibly  a
text .LST file.  When using a nonstandard processor, there is no such
guarantee.  You might dream up a usage for a processor which  took  a
text  file,  produced  another  text file from it that was input to a
standard processor.  This is sort of the way pre-processors work.  It
is possible to specify all this in a COMPILE command.
    First  off,  if your nonstandard processor generates a text file,
instead of a .REL file, you must inhibit loading of that  file.   You
do  this by putting "/NOLOAD" in the command string.  For example, if
I were using a nonstandard processor called NSP to translate  a  text
file  BAZ  into another text file FOO, and if I also wanted to load a
copy   of   MAIN.REL,   the   command    "LOAD    FOO=BAZ/NONSTANDARD
NSP/NOLOAD,MAIN" would do it.
    Now let us consider a more interesting case.  Let us say that the
preprocessor, NSP, translated the file BAZ into a  file,  FOO,  which
was a FAIL program! This means that we want to specify that FOO is to
be translated when NSP is done.  In this way we get the effect of two
processors (three if you count the Loader) passing over the same file
in sequence.  Let us also say that we wanted to  translate  MAIN  and
SINE  and  load  them into the core image too.  We could do all this,
incredible as it may seem, in one command by use  of  the  "/FORWARD"
switch.   First  let me explain why it won't work without the switch.
When you give the command, it will look for a file  called  MAiN,  it
will  find  it and translate it, it will look for a file called SINE,
it will find it and translate, but then before NSP has  been  called,
it  will  look for a file FOO.  Since FOO is produced by NSP, it does
not exist yet! This will result in an error message of the form "FILE
NOT  FOUND:  FOO".  If you include the "/FORWARD" switch, it will not
try to look for FOO, but will assume that it will appear magically by
the  time the Loader is called.  So our command line looks like this:
"LOAD  FOO=BAZ/NONSTANDARD   NSP/NOLOAD,MAIN,SINE,FOO/FORWARD".    As
usual,  if "/FORWARD" appears before a file name, it sticks until the
end of the command or until its inverse, "/NOTFORWARD" appears.
    To repeat, the "/NOLOAD" switch inhibits loading of a file.   You
use this when you know that a particular file will not be a .REL file
when its processor is done, but is instead text  and  possibly  input
for  yet  another processor.  Its inverse is "/LOAD".  The "/FORWARD"
switch is used when you know a given source file will  not  exist  at
the  time  the  command is typed, but will appear sometime during the
processing of the command.  Its inverse is "/NOTFORWARD".



                                 I.B.4-7

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I


I.B.4.f.6 INDEX OF COMPILE SWITCHES
    Those switches which have inverses will stick if placed before  a
file  name  and  will  not if placed after one.  The normal cases, or
default  options,  are  the  inverses  of  the  switches  which  have
inverses.  Each of these switches has a legal abbreviation also.

 SWITCH		ABBREV	 INVERSE	ABBREV	SECTION
/COMPILE	/COM	/NOCOMPILE	/NOC	I.B.4.f.1
/CREF		/C	/NOLIST		/N	I.B.4.f.2
/DUMP		/D				I.B.4.f.4
/FAIL		/F				I.B.4.f.1
/FORTRAN	/FORT				I.B.4.f.1
/FORWARD	/FORW	/NOTFORWARD	/NOT	I.B.4.f.5
/SAIL		/S				I.B.4.f.1
/GOGOL		/G				I.B.4.f.1
/LOAD		/LO	/NOLOAD		/NOLO	I.B.4.f.5
/LIBRARY	/LIB	/NOSEARCH	/NOS	I.B.4.f.4
/LIST		/L	/NOLIST			I.B.4.f.2
/MACRO		/M				I.B.4.f.1
/MAP						I.B.4.f.4
/NODUMP		/NOD				I.B.4.f.4
/NONSTANDARD	/NON				I.B.4.f.5
/REL		/R				I.B.4.f.4

I.B.4.f.7 INTERNAL WORKINGS
    When  you  type  one  of  the  COMPILE  commands, a great deal of
invisible screwing around goes on.  For example, when you  type  "COM
A,B" and A and B are SAIL programs, the monitor does not call SAIL in
directly, instead the monitor calls in a program  called  RPG.   This
program  reads  your command line and generates from it a file called
QQSAIL.RPG (if A and B were FAIL programs, the file would  be  called
QQFAIL.RPG) which contains these commands:

A←A
B←B

RPG then calls in SAIL.  Now, if you call in SAIL yourself (by typing
"R SAIL", see part I.B.5) it will expect to read  its  commands  from
the  teletype.   However when RPG reads SAIL in, it starts it up at a
different place, one past its usual starting  address  to  be  exact,
which  lets  SAIL  know that it should take its command from the file
QQSAIL.RPG.  After it reads the .RPG file, it  will  delete  it.   It
then  types  out  its  name  and the name of the file it is currently
translating.
    If you are using a nonstandard processor, the .RPG file  has  the
name  QQNAME.RPG  where  NAME  is  the  first  four characters of the
processor name.  If the processor name is four characters or less, it
is  the  entire  processor  name.   For  example,  if the nonstandard

                                 I.B.4-8

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

processor name were NSP, its commands would be on QQNSP.RPG.  If  its
name were PREPRO, its commands would be on QQPREP.RPG.
    You  notice  that  the commas were changed into carriage-returns.
There are several other mappings of this nature, for instance, equals
sign  (=)  gets mapped into left arrow (←).  Perhaps it would be most
clear if I gave  you  the  general  form  for  the  commands  to  the
processors.
    All the standard processors accept commands in this general form:

DEV:OFILE,DEV:LFILE←DEF:FILE1,DEV:FILE2,  . . .  ,DEV:FILEn

Where  DEV  is  any  standard  device name (see section I.B.8.c).  If
omitted, DSK is assumed.  LFILE is the name of the file  the  listing
is  written  on.   If  omitted,  with  its preceeding comma, means no
listing is to be produced.  OFILE is the name of the .REL  file.   If
no extension is given, .REL will be used.
    It  is difficult to give the exact algorithim for translating the
command line, because RPG itself does many of  the  various  options.
Let  me  give  one  more point and then a list of common commands and
their .RPG file representations.
    When you give a TRY, EXECUTE, DEBUG or LOAD command, a QQLOAD.RPG
file  is  produced which tells the loader what files to load and what
to do when it is done.  The processor is told  what  to  do  next  by
placing  a file name followed by an exclaimation point (!) at the end
of the .RPG file, which is the file name of  the  next  processor  to
call in.
    To  repeat,  a  file name followed by an exclaimation point means
the program whose name this is is to be called in next and started at
its starting address plus one.





















                                 I.B.4-9

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I



   COMMAND	QQxxxx.RPG	QQLOAD.RPG
COM A		A←A		none
LOAD A		A←A		A/G
		LOADER!
DEBUG A		A←A		/TA/G
		LOADER!
TRY A,B		A←A		/D/EA,B/G
		B←B
		LOADER!
EX A=B+C	A←B,C		/EA/G
		LOADER!
COM A/LIST,B,C	A,A←A		none
		B←B
		C←C
COM /LIST A,B,C	A,A←A		none
		B,B←B
		C,C←C
COM /CREF A,B	A,A/C←A		none
		B,B/C←B
LOAD A/F,B/G	{on QQFAIL.RPG}	A,B/G
		A←A
		SAIL!
		{on QQSAIL.RPG}
		B←B
		LOADER!

    I hope this is an adequate description.  All other features, such
as creation date checking, brokets (<>), etc.,  are  handled  by  RPG
itself.
    If  you  write a nonstandard processor, you must write it so that
when it is started at its starting address plus one, it will read its
command  line from the .RPG file, then delete the .RPG file.  It must
accept its commands in  the  above  form,  and  it  must  accept  the
exclaimation point feature.
    Notice  that  this  is  all you need to know to write a compiler,
assembler, editor, or any other system program.   Your  program  must
accept  commands in standard form, must accept the exclaimation point
feature, and must read its command from a file when it is started  at
its starting address plus one.  It is a simple modification to RPG to
add new standard processors.  All the "@" sign handling  is  done  by
RPG itself, so your processor will never receive one.







                                 I.B.4-10

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.5 COMMANDS TO MANIPULATE CORE IMAGES . . .

SAVE
   
    This  command  must  be  followed  by  a file descriptor, such as
"SAVE DSK:SINE".  This causes your current core image to be saved  on
the  disk  under  the given file name.  The monitor will give you the
file name extension DMP if you do not specify one.  You  may  specify
the  amount  of core you wish your file to be saved in if you like by
typing a decimal number between 0 and 76 after the  file  descriptor.
For  example,  if  you  wanted to save your core image under the name
"JOB" and you wanted to save it  in  10K  of  core,  you  might  type
"SAVE DSK:JOB 10".  This would create a file called JOB.DMP and store
your core image on it.  When you listed your directory, the length of
the file would be something slightly over 10,000 words long.
    You  can  also  save on dectape, just by typing "DTAn" instead of
DSK, where "n" is the number of the dectape drive you  wish  to  save
your core image on.
    This  command does not save your accumulators, and it resets your
IO status before it  is  done.   This  means  you  may  not  continue
executing  your  program  after  you  use this command.  You may only
restart the program from the beginning.
   

RUN
   
    This command, when followed by a file descriptor, reads the  file
in and generates a core image, and starts the program.  The file must
have been saved previously by a SAVE command for this to work  right.
If  the  file  is not a program, it will type "NOT A DUMP FILE".  You
may run programs you previously have saved on the disk or dectapes by
means of this command.  Again, you may specify the amount of core you
wish the program to run in by typing the  decimal  number  after  the
file descriptor.
   

GET
   
    This is the same as RUN, except it does not start the program, it
merely generates the core image and exits.
   

R
   
    This is a special form of the RUN  command  which  runs  programs
that  are on the system library area on the disk, rather than on your
disk area.  You may not specify a device name or a project-programmer
name  for  this command.  A typical usage of this would be "R CHESS",
which would run the chess program for you.

                                 I.B.5-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I



















































                                 I.B.5-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.6 COMMANDS TO START A PROGRAM . . .

START
   
    May be abbreviated "S".  This command is valid only if you have a
core  image.  START causes the program to be started at its so-called
starting address.  This address is automatically assembled into  most
programs.   All  SAIL  programs  have  starting  addresses.   A "GET"
command followed by a "START" command is the same as a "RUN" command.
You  may  specify  another address to start it at by typing the octal
address after the command.  For example, to just start up a  program,
you  type "START".  To start a program at octal location 547, you may
type "START 547".
   

DDT
   
    If you have DDT or RAID in your core  image,  this  command  will
start it up.  If you do not have DDT in your core image, it will type
"NO DDT".
   

REENTER
   
    May be abbreviated "REE".  Some programs  have  re-entry  address
for  certain  types  of error conditions.  If the program has such an
address, this command will cause the program to be started there.  To
set  the  reenter  address,  the  program must deposit the address in
JOBREN in core.  See the chapter on  user  programming  for  details.
Only the manuals on the programs can tell you whether a given program
has a reentry address.
   

CONTINUE
   
    May be abbreviated "CONT".  If  you  have  stopped  your  job  by
typing  control-C,  then  you  may proceed by typing "CONTINUE".  The
system keeps track of whether you exited by typing control-C and will
not  allow you to continue unless this is the way you exited.  If the
program exits on an error condition of some sort, the system will not
let  you continue and will type "CAN'T CONTINUE" if you try.  You may
type "CONTINUE", however, if your program has halted  and  given  the
typeout  "HALT  AT  USER  #",  because  a  halt  instruction  is  not
necessarily an error.  To review, if your program has halted,  or  if
you have typed control-C, you may proceed by typing "CONTINUE".
   

CSTART
   

                                 I.B.6-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

    May  be  abbreviated  "CS".   If your program does not attempt to
read from or type on your teletype, you may, if you wish, start it by
typing  "CSTART"  which  will do the same thing as "START", except it
will leave your teletype in monitor mode.  This means that everything
you  type will continue to go to the monitor.  One use for this might
be to start your program this way and type  "TIME"  (see  the  "TIME"
command  further  on)  occaisionally  to  see  how  your  program  is
proceeding.
   

CCONTINUE
   
    May be abbreviated "CC".  This is the same as "CONTINUE",  except
that  it  leaves the teletype in monitor mode.  This is useful if you
wanted the teletype in monitor mode, but forgot  or  were  unable  to
type  "CSTART",  you  may  type control-C and then "CCONTINUE" to get
into monitor mode.

































                                 I.B.6-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.7 COMMANDS TO GET INFORMATION FROM THE SYSTEM . . .

SYSTAT
   
    This command may be typed without logging in.  This command  also
destroys  your  core  image, if you have one.  This means you may not
type control-C, "SYSTAT", and expect to  continue!  You  must  reload
your core image.
    This  command  types a list of the jobs that are currently logged
in along with their project-programmer names, the name  of  the  disk
file  their last core image came from, their core size, and a list of
what devices and files they are currently using.  You  will  have  to
try it yourself to see exactly what it does tell you.
   

COREX
   
    This  command is an abbreviated version of SYSTAT.  It too may be
typed whether you are logged in or not, and  it  discards  your  core
image.  COREX prints out just the number of active jobs, how long the
system has been up, and how much core is  remaining  or  how  heavily
overloaded  the  system  is.   This types only about 5 lines, whereas
SYSTAT types 20 to 30 lines.
    Note that SYSTAT and COREX are the only two information  commands
that  destroy your core image.  All other information commands may be
typed without any fear of damage.
   

DAYTIME
   
    May be abbreviated "DA".  This prints out the time of day and the
date.
   

TIME
   
    This  prints out two numbers: the amount of compute time you have
accumulated since you logged in, and the amount of compute  time  you
have  accumulated  since you last typed "TIME".  The numbers come out
in the form M:S, where M is the number of minutes and S is the number
of  seconds to two decimal places.  For example, one of the two times
it types might look like "34:14.22" which means 34 minutes and  14.22
seconds.   If the number of minutes is three or more digits long, the
first digit or two represents the number of hours.  For instance, the
time  "122:35.22" means one hour, 22 minutes, and 35.22 seconds.  The
time "2136:41.34" means 21 hours 36 minutes, and 41.34 seconds.
   

PJOB

                                 I.B.7-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

   
    This causes your job number to be printed out.
   

PPPN
   
    This causes your project-programmer name to be printed  out.   If
followed  by an arguement consisting of a decimal number, that number
is taken to be a job number and the project-programmer name  of  that
job  is  typed,  if  there  is  a job logged in.  In other words, the
command "PPPN 5" would either print the  project-programmer  name  of
whoever is logged in as job 5, or would type "JOB NOT LOGGED IN".
   

RESOURCES
   
    May  be abbreviated "RESO".  This types out a list of the devices
that are currently free, and the number of disk blocks that are still
free.   A  disk  block  is  128  words long.  Notice that this number
decreases if you create a file, and increases if you delete a file.
   

HELP
    This command is used for  a  quick  reference  to  documentation.
Typing  "HELP"  followed by a carriage-return will tell you what help
files are available.  Typing "HELP" followed  by  a  help  file  name
followed  by  a  carriage-return will type out a short summary of the
usage of the program or command whose name is  the  help  file  name.
For  instance,  typing "HELP SAIL" followed by a carriage return will
print out a summary of the SAIL  command  format  and  the  name  and
location of the SAIL manual.



















                                 I.B.7-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.8 COMMANDS TO ASSIGN AND RELEASE RESOURCES . . .

I.B.8.a DEFINITION OF ASSIGNING A DEVICE
    Let  me  preface  this discussion by telling you what is meant by
assigning a device.  There are,  on  the  computer,  magnetic  tapes,
dectapes,  disks,  a line printer, and other IO devices.  Each device
has a unique three or  four  character  name  that  the  system  will
recognize.   When  you  assign a device, your job number is placed in
the device's data area inside the monitor so that no other  user  may
access  the  device while you are using it.  The exception to this is
the disk, which is always open to all users.  If you assign the disk,
it only assigns you a fraction of the disk, not the entire unit.
    A  device  may be assigned in two ways.  First, you may assign it
by giving the "ASSIGN" command (see  below).   This  is  a  permanent
assignment  and  is in effect until you log out or explicitly release
it by giving the  "DEASSIGN"  or  "FINISH"  command.   This  type  of
assignment  is  called  "assignment  by console".  The second type of
assignment occurs when you write a program to  use  a  given  device.
When  you  begin using it, it is assigned to you on a temporary basis
if you have not already assigned it by console, and  it  is  released
when your program is finished with it.  This is called "assignment by
program".

I.B.8.b DEFINITION OF LOGICAL DEVICE NAME
    It is important at this  point  that  you  know  about  so-called
"logical"    names   for   devices.    Whereas   a   device   has   a
system-recognized three or four letter name,  such  as  DSK  for  the
disk,  you may assign it an alias, called a logical name.  This means
that you can then refer to it by its alias, as well as  its  physical
name.   The alias takes priority over the physical name, however, and
if you assign a dectape the logical name DSK, then every program  you
try  to  run  which  attempts  to  use the disk will end up using the
dectape instead! Giving any device the logical name DSK is dangerous,
for  then  you  may not use any of the COMPILE commands, because they
make extensive usage of special features which the disk has but other
devices  do  not have.  You may, however, assign any device any other
logical name you wish.
    Logical names are one  to  six  characters  long.   For  example,
"DISK" is a valid logical name.  So is "FOO", "P2", or even "NAME".
   

I.B.8.c ASSIGN
   
    May  be  abbreviated "A".  This command should be followed by the
name of the device you wish to assign.  This must be a legal physical
device name.  Here is a list of the legal physical device names:

	LPT - line printer
	DTAn - dectape drive "n", for example, "DTA1" is 

                                 I.B.8-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	       dectape drive 1. "n" may be 1 to 4.
	MTAn - Magnetic tape drive "n". "n" may be 1 to 7.
	AD - Analog to digital (and digital to analog) converter
	PTP - Paper tape punch, also the CALCOMP plotter
	PTR - Paper tape reader
	TV - Television camera
	DSK - Disk file
	SYS - Refers to the disk, like DSK, but more
	      specifically, to the part of the disk that
	      contains the system library files.
	TTY - Your teletype.
	TTYn - Teletype number "n".
	CTY - The PDP-10 console teletype.
	UDP - The spare disk pack on the 2314.

These  are  all  the  devices  we  have  on  our  machine that can be
referenced this way.
    Typing "A DTA" asks the system to assign  you  one  of  the  four
dectape  drives.   The system would respond by saying "DTA1 ASSIGNED"
if dectape drive 1 were free when you gave the command, or  "NO  SUCH
DEVICE" if there were no drives available.  You may assign a specific
drive by saying something like "A DTA3"  which  would  respond  "DTA3
ASSIGNED"  if drive 3 were free, or "ALREADY ASSIGNED TO JOB #" if it
were not free.  You may attempt to assign the line printer by  typing
"A  LPT",  but  it  is not necessary to assign it this way to use it.
The LIST command will assign it for you on a temporary basis.
    You may give the device a logical name with the assign command by
following  the  physical name with the name you want it to have.  For
example, if you wanted to assign magnetic tape drive 1 and you wanted
it  to have the name "TAPE", you might do so by typing "A MTA1 TAPE",
and the system would respond "MTA1 ASSIGNED" if it were free, and the
system  would  then  store  the logical name you typed.  You may then
refer to the tape by the name "TAPE" until you log out or  explicitly
release  the  device.   Since  you  may assign any device any logical
name, you might write a program which uses magnetic tape drive 1  (or
"MTA1")  and  refers to it by its physical name.  If when you decided
to run this program, you found that the only magnetic tape  available
was  MTA2,  you  might type "A MTA2 MTA1", which will make it so that
when your program refers to the device  name  "MTA1",  it  is  really
referring  to  "MTA2".  This is sort of the purpose of logical names.
Notice that your logical name assignments are all your own,  and  are
completely  distinct from any logical names that anyone else has set.
It is as if you had your own private set of devices and  names.   The
devices remain separate even though there may be several people using
the same logical name.
   

I.B.8.d DEASSIGN
   

                                 I.B.8-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

    May be abbreviated "D".  This command, when followed by a logical
or physical device name, releases the console assignment you may have
had on this device.  If the device was not assigned to you,  it  will
type  "DEV  WASN'T  ASSIGNED?".  You may deassign all your devices in
one blow by simply typing "D".  This does not  affect  any  temporary
assignment your program may have on the device.
   

I.B.8.e FINISH
   
    May be abbreviated "F".  This command, when followed by a logical
or physical device name, releases the program assignment your program
may  have  had  on  this  device.   If your program was not using the
device you asked to finish, it will type "FINISH WHAT???".  This also
releases any console assignment you may have had on the device.
    A  possible  usage for this command is if you were using the "/L"
option to the "COMPILE" command and decided that you didn't want  the
entire  listing  but  just the first part of it.  You might then type
control-C and "F DSK", which would complete writing of what there was
of  your  listing  and release the disk.  You might have to type this
command several times, because the assembler  might  have  many  disk
files  open  at  the  same  time  and you wouldn't know which one the
listing was.  You can just type "F DSK"  again  and  again  until  it
types "FINISH WHAT???" at you, indicating that there are no more disk
files to be finished.
   

I.B.8.f REASSIGN
   
    This may be abbreviated  "REA".   This  must  be  followed  by  a
logical or physical device name and a job number.  The effect is that
if the named device were assigned to  you,  it  would  no  longer  be
assigned  to  you,  but  to  the job whose job number you typed.  For
instance, if you had the line printer and the person who  was  job  3
wanted  it,  you could give it to him by saying "REA LPT 3".  This is
the same as if you  had  said  "D  LPT"  and  he  had  said  "A  LPT"
immediately thereafter.
   

I.B.8.g SLEVEL COMMAND

    This  command  allocates  processor  service.   You  follow  this
command with a decimal number between 0 and 85  that  represents  the
amount  of  processor  service  you  have signed up for followed by a
carriage-return.   If  you   just   type   SLEVEL   followed   by   a
carriage-return, it will type out the amount of service you currently
have assigned.  The service level is not just the amount  of  compute
power  you get, for it is dependant upon your total active core size.
Active core is defined as core that is either running  or  locked  in

                                 I.B.8-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

due  to IO or spacewar activity.  One percent is subtracted from your
service level assignment for every 5K of active core.  The  remaining
level  is  the percentage of compute time plus IO time your job uses.
For example, if a job does no IO and is less than 5K in  length,  his
service level will indeed be the processing level he receives.  If he
does IO that locks him in core, such as disk or magnetic tape IO, the
time  he is locked in is counted for scheduling purposes exactly like
compute   time.    The   effect   is   that   using   the   disk   is
service-level-wise identical to using the computer itself.
    If several jobs are logged in with the same programmer name, they
all get the same service level, and all of their active core is added
together.
   

I.B.8.h CORE
   
    May  be  abbreviated  "C".  This command allows you to change the
size of your program.  This command should be followed by  a  decimal
number, 0 to 76, which represents the amount of core, in K (1024 word
blocks), that you want your program to have.   For  example,  if  you
wanted  your  your program to have 10K of core, you might say "C 10".
If you want your program to go away entirely, you might say "C 0".
    If this command is followed  immediately  by  a  carriage  return
instead  of  a decimal number and a carriage return, the size of your
job is not altered in any way, but instead the monitor types out  the
size  of  your  job and the size of your second segment, if your have
one, for you.  In this manner, without damaging your program, you may
find out your job size by interrupting your program with a control-C,
typing "C" followed by a carriage return, and then when  the  monitor
has typed out your job size, typing "CONTINUE" which will resume your
program.



















                                 I.B.8-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.9 COMMANDS TO MANIPULATE YOUR TELETYPE ASSIGNMENT . . .

TALK
   
    This command, when followed by the physical name of  a  teletype,
causes  your teletype to be connected to the named teletype directly.
This means everything you type will be printed on his  teletype,  and
everything  he  types  will be printed on your teletype.  If you know
that the name of the console teletype is  "CTY",  you  may  use  this
command from a remote teletype to interrogate or direct people in the
computer room.  This is useful if you are on a  remote  teletype  and
want someone to mount a dectape for you or something.  You get out of
this mode by typing control-C.  As an example, to talk to the console
teletype,  you  could  type  "TALK  CTY"  and  then begin typing your
message.
    If you are calling in from a remote teletype, you should ring the
bell a bit and type "Is anyone there" to get the attention of someone
in the computer room.
   

DETACH
   
    May be  abbreviated  "DET".   This  causes  your  program  to  be
disconnected  from  your  teletype  and your teletype to be released.
This means that while your job is  disconnected,  you  may  use  your
teletype  to  log  in  again and do something else! There is a hazard
here, for if your detached job attempts to type something, and  there
is  no  teletype  there,  it will be stopped.  Detaching is generally
used only when you wish to go to another teletype.
   

ATTACH
   
    May be abbreviated "ATT".  This command, when followed by  a  job
number  and  a  project-programmer  name,  causes the named job to be
attached to your teletype, just as if you had logged  in  there.   If
the   project-programmer  name  you  typed  do  not  agree  with  the
project-programmer name that was associated with the  job  whose  job
number  you typed, it will type "PROJECT-PROGRAMMER NUMBER MISMATCH".
If the job whose job number  you  typed  is  already  attached  to  a
teletype,  it will type "CAN'T ATTACH", because only one teletype may
be attached to a job at any time.
    If you were using "ATTACH" and "DETACH" to switch your  job  from
one  teletype  to  another  and  in  the  process you forgot your job
number, you may use "SYSTAT" to find out what it was.
    As an example of the usage of this command, if  your  job  number
were  3  and you were user S,JAM then you might type "ATT 3 [S,JAM]".
Note that the project-programmer name  must  be  enclosed  in  square
brackets ([]) for this command to work.

                                 I.B.9-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I



















































                                 I.B.9-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.10 SPECIAL TELETYPE CHARACTERS

    There  is  a  key  on a teletype marked "CTRL".  When you depress
this key and while it is depressed type a character, you get what  is
called  a  "control" character.  This means that if you type the CTRL
key with the letter "A", you do not get that letter, but you get  the
"other  meaning"  of  that  character,  which in this case is "↓", or
downarrow.  In this manner, we can type twice as many  characters  as
there  are  keys  on  the  teletype.   The  III display consoles have
roughly twice as many keys as a teletype does, so there  is  no  need
for a CTRL key on them.  Nevertheless, they have two.
   

CONTROL-C
    If  you  type control-C while a job (like SAIL, or maybe the text
editor) is running, the monitor will type "↑C" and the  job  will  be
stopped.   You  may  proceed  by  typing  CONTINUE.   The system will
sometimes make you type control-C twice in a row  to  make  sure  you
really mean it.
    This  point needs further explaining.  If you type control-C once
(or <CTRL 1>CALL on a III display keyboard), it does not  necessarily
stop  the  job  immediately.  What it does is place that character in
the monitor with all the other characters, so that the next time your
program reads a character from the teletype, the control-C will go in
and the job will exit.  You may override  this  delay  by  typing  it
twice.
    This  is  a  very  handy  feature,  for  with this, you may stack
several commands, including control-C's, and they will  be  processed
as the program (or the monitor) is ready for them.
   

RUBOUT KEY
    Typing  this  key  causes  the  last  character  you  typed to be
deleted.  Typing it N times causes the last N characters you typed to
be  deleted,  or  back  to  the  last  carriage-return, line-feed, or
alt-mode.  Rubout will not delete characters further back than one of
those  characters.   Rubout  will  also  not  work if the program has
gobbled up the characters you wanted to delete, for there is  no  way
the  system  can make the program to vomit back those characters! You
can tell if rubout is working right because it types the character it
deleted,  delimited by backslashes (\), for each character you delete
this way.  You can tell if rubout did not take because  it  will  not
type a character, but will give a carriage-return.
   

CONTROL-U
    This  prints  as  "↑U"  and  causes  the entire line you had been
typing, back to the last carriage-return, line-feed, or alt-mode,  to
be  deleted.   The  system types a carriage-return so you may start a

                                 I.B.10-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

new line.  Again, if the program has already  accepted  part  of  the
line,  control-U  will  only  delete  that which still remains in the
system.
    To find out how you type control-U on the III  display  consoles,
see section I.C.3.
   

CONTROL-O
    This  prints  as  "↑O"  and  tells the computer to shut up.  More
specifically, this suppresses teletype output until  the  next  INPUT
UUO  (See  chapter  II).  For instance, if you had started the editor
printing out 2000 pages of text and decided you really didn't want to
wait  for  all  that, you could type control-O and the printout would
cease.  You may then type another command  as  if  the  printout  had
terminated normally.
    To  find  out how you type control-O on the III display consoles,
see section I.C.3.
   

CONTROL-Z
    This prints as "↑Z" and is  the  end-of-file  character  for  the
teletype.   If  you think of a string of characters as a file, like a
disk file, then you know that there must be something  to  tell  when
there  is no more data.  On the disk, there is kept information as to
how long the file is and where it ends.  To accomplish  this  on  the
teletype,  we  use  control-Z.   Programs like the text editor do not
require the usage of this character, for they have other  conventions
for recognizing end of input.  There do exist programs (MACRO and PIP
for example) that depend on this  character  to  tell  when  to  stop
listening  to  the teletype.  You must consult the program writeup to
determine whether  a  given  program  does  or  does  not  need  this
character.  Usually, a carriage-return is the character used.
    To  find  out how you type control-Z on the III display consoles,
see section I.C.3.
   

CONTROL-P
    This prints nothing, but changes the effect of the TAB character.
When  you  type  the  TAB key (control-I) on a model 33 teletype, the
system calculates the number of spaces to the next position that is a
multiple  of  8  characters  away from the left-hand margin and types
that many spaces.  There exist  teletypes  with  a  hardware  feature
which  allows  the system to send just the tab character, rather than
converting to spaces as it must for the model 33.  The model  35  and
some  model 37s have hardware tabbing mechanisms.  To tell the system
that it need not expand tabs into spaces, you type control-P.
    This character, along with control-F and control-B, are inverting
characters.   That  is,  they  invert the state of the system in that
respect.  If you type control-P an even number of times, it  will  be

                                 I.B.10-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

as  if  you never typed it at all.  The same is true of control-F and
control-B.
   

CONTROL-F
    This prints nothing, but changes the  way  in  which  lower  case
characters  are handled.  The system normally converts all lower case
letters it receives from a teletype to upper case  letters.   On  the
model  33  teletype,  it doesn't make any difference, because you can
only type upper case letters anyway.  On the display keyboards or  on
a  model 37 teletype, it makes a difference, because they are capable
of transmitting lower case letters as well as upper case.  To  permit
the  entry  of lower case letters, type control-F.  (an odd number of
times!)
   

CONTROL-B
    This prints  nothing,  but  changes  the  duplexing  of  teletype
inputs.   When  you  type a key on your teletype, the printer portion
does not just automatically type the thing you  typed,  instead  each
character  you  type  must be sent back to your teletype so that what
you typed will be printed.  This process is called "duplexing".  Some
teletypes,  however,  do  have  an  internal  connection  that prints
automatically what is typed.  For one of these, it  is  necessary  to
inhibit  the  system's  duplexing.  This is done by typing control-B.
(an odd number of times)
   

CONTROL-Q
    This character does not print, but has the interesting feature of
causing the automatic line-feed after carriage-return to go away.  In
other words, it inhibits  duplexing  of  line-feeds.   This  is  only
useful  if  you are using the paper tape reader which can be attached
to a model 33 or 35 teletype.  It is included  here  because  if  you
type  it  by  accident,  you ought to know what has happened! You can
tell it is happened by noticing that the system does not appear to be
listening  to  you.   This  is  because  the  system  triggers  on  a
line-feed, not a carriage-return, and if one is not either explicitly
typed  or  duplexed,  it  will  not  trigger.   The  inverse  of this
character is control-S.
   

CONTROL-S
    This prints nothing but causes the system to  once  again  duplex
line-feeds after carriage-returns.  It is the inverse of control-Q.





                                 I.B.10-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.B.11 COMMANDS TO DUMP AND RESTORE THE DISK

DUMP
    This  command  may be followed by a file descriptor, or a list of
file descriptors separated by commas.  If  no  file  descriptors  are
typed,  it  will dump everything on your area.  Asterisks may be used
as file names, file name extensions,  project  names,  or  programmer
names.   An  asterisk  means  any  name  will work.  For example, the
command "DUMP" and "DUMP *.*" will both cause everything on your disk
area  to  be  dumped.  The command "DUMP *.REL,*.DMP" will cause just
your .REL files and your .DMP files to be dumped.  The command  "DUMP
[S,SYS]" will cause everything on S,SYS's disk area to be dumped.
    Normally,  the  files are written on magnetic tape drive 0.  This
may be changed by including "ON MTAn" at the end of the command  line
where  MTAn  is  the name of the magnetic tape drive you wish to use.
For example, the command "DUMP FOO,BAZ,SINE ON MTA1" would cause  the
files FOO, BAZ, and SINE to be written on magnetic tape drive 1.  The
command "DUMP ON ON MTA1" would cause the file named ON to be written
on drive 1.
    If  the  magnetic  tape drive remote-local switch is in the local
position, or if the wrong number is dialed at  the  top,  the  system
will  type  "DEVICE  MTAn  OK?" which means it has detected something
wrong with the tape before it attempted to  write  on  it.   You  may
proceed by remedying the error condition and by typing CONTINUE.
    The  DUMP command as well as the RESTORE command have the command
file option (see section I.B.4.f.3).  You may say "DUMP @FOO" and  if
the  file FOO contained the line "SINE[S,DWP],BAZ" then the file SINE
on S,DWP's disk area and the file BAZ would be dumped.



RESTORE
    This command causes a mag.  tape to be read  and  all  the  files
written on your disk area.  Normally, it will only restore files that
have the same project-programmer name as the one you logged in under.
You  may  override  this  and have it restore any files by typing the
project-programmer name in brackets after the command, or  by  typing
file  names with project-programmer names.  For instance, the command
"RESTORE [1,FOO],[S,SYS]" would search the tape for any file with the
project-programmer name 1,FOO or S,SYS and restore all those files on
your disk area.  The command "RESTORE  A,SINE[S,DWP]"  would  restore
the  file  A  from your disk area and the file SINE from S,DWP's disk
area.
    This command normally reads from MTA0, but you may  cause  it  to
read  from  any  drive  by  including  "FROM  MTAn" at the end of the
command line, where MTAn is the name of the magnetic tape  drive  you
wish  to  restore from.  For example, the command "RESTORE FROM MTA1"
would cause everything with your project-programmer name on  MTA1  to
be    restored    onto    your    area.     The    command

                                 I.B.11-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

"RESTORE FOO,*.REL,SINE[S,DWP] FROM MTA2" would cause  the  file  FOO
from your area, all .REL files from your area, and the file SINE from
S,DWP's disk area all to be read from magnetic tape drive 2 onto your
disk area.
    There is also a command file option on this command.  See section
I.B.4.f.3 for details about command files.
   

BACKSPACE
    This command causes magnetic tape drive 0 to be backspaced by one
file.   You  may  make  it  backspace several, let us say n, files by
typing the number,  n,  after  the  command.   You  may  backspace  a
different  tape  drive  by  including the name of the drive after the
command.  You may cause it to backspace several records,  instead  of
several  files, by including the word "RECORD" in the command string.
For example, "BACKSPACE 5"  would  cause  MTA0  to  be  backspaced  5
files."BACKSPACE  MTA1  3"  would  cause  magnetic tape drive 1 to be
backspaced 3 files.  "BACKSPACE RECORD 2"  would  cause  MTA0  to  be
backspaced  2  records.   The  three  arguments,  RECORD,  number  of
backspaces,  and  tape  name,  may  come  in  any  order,   and   any
combination.   If  RECORD  is ommitted, backspacing is done by files.
If the number is ommitted,  1  is  assumed.   If  the  tape  name  is
ommitted, MTA0 is assumed.



ADVANCE
    This is the same as BACKSPACE in every way, except that it causes
the tape to be advanced over records or files rather than backspacing
over them.



REWIND
    This command causes magnetic tape drive 0 to be rewound.  You may
rewind any tape drive by including the name of the drive you wish  to
rewind  after  the  command.   The  command "REWIND MTA1" would cause
drive 1 to be rewound.  The command "REWIND" would cause drive  0  to
be rewound.
   
   
    If  you are logged in under 1,2 when you give a DUMP command, the
entire disk will be dumped regardless of the exact command.  Any file
descriptors  you  may  type  will  be ignored.  Under 1,2 the command
assumes a file descriptor *.*[*,*].  You may  dump  on  any  tape  by
including  "ON MTAn" as usual.  When you are dumping the entire disk,
there are two options you may be interested in.
    Normally, the dumper will not allow you to dump the disk twice in
one  day.   This  is because it uses the date last dumped to tell how

                                 I.B.11-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

far it has gotten if you have to restart it  after  a  system  crash.
You  may  override  this  check  by  including the word DAMMIT in the
command string.  "DUMP DAMMIT" will  cause  the  entire  disk  to  be
dumped regardless of how many times it has been dumped that day.
    If  you restart dumping the entire disk after a system crash, you
may find that it takes quite a while for the  dumper  to  figure  out
exactly  where  it  was.  You may speed this process up by telling it
where it was by giving the  file  name  and  project-programmer  name
followed by the word PICKUP.  The command "DUMP [1,FOO] PICKUP" would
cause the  dump  to  be  restarted  at  the  first  file  on  1,FOO's
directory.  The command "DUMP SINE[S,JAM] PICKUP" would cause dumping
to resume at the file SINE on S,JAM's disk area.



IDUMP
    This command causes an incremental dump of the disk to  be  made.
In  this  mode, only the files which have been created since the last
total dump are dumped.  This command is subject  to  the  DAMMIT  and
PICKUP specifications also.
    If  you  are a random user, this command does an incremental dump
of your area, and the DAMMIT and PICKUP switches are not  applicable.
If  you are logged in under 1,2 this command does an incremental dump
of the entire disk and is subject to the switches.
   

TLIST
    This command causes the contents of an entire tape to be  printed
out on the teletype.  You may put the listing out to the line printer
or to a file by including the  device  name  and  file  name  in  the
command  line.   The  command  "TLIST LPT:" will cause the listing to
appear on the line printer.  The command "TLIST DSK:FOO"  will  cause
the listing to be put out to a file called FOO on your disk area.
    You may list another tape besides MTA0 by including the tape name
in the command line.  "TLIST MTA1 will cause MTA1 to be listed on the
teletype.  "TLIST MTA1 LPT:" will list MTA1 on the line printer.
    You  do  not  have to list the entire tape if you do not want to.
You may specify the number of files you want listed  by  including  a
number  in  the  command  line.   The command "TLIST 3" will list the
names of the first three files from MTA0 on  the  teletype.   All  of
these   specifications   may   be   used  at  once.   "TLIST  2  MTA2
DSK:BAZ[1,FOO]" will list the names of the first two files from  MTA2
on a file called BAZ on 1,FOO's disk area.
   

EOT
    This  command  causes  the tape to be spaced to a position beyond
the end of the last file.  A tape drive may be specified.  "EOT MTA1"
will  cause  tape  drive 1 to be spaced to the end of tape.  "EOT" by

                                 I.B.11-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

itself will assume you mean drive 0.  The position of the tape is the
'logical'  (as  opposed to physical) end of tape.  It is not the last
six inches of the physical tape, but is just beyond the last data  on
the  tape.   The position is such that if you do a DUMP after an EOT,
you will have to give two RESTORE commands to get all  the  files  on
the  tape.   The  effect  is that you have two 'logical' tapes on one
physical reel.  If you wish to concatenate the logical tapes into one
logical  tape,  you must give a BACKSPACE command before you give the
DUMP command.









































                                 I.B.11-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.C USAGE OF CONSOLES OTHER THAN THE MODEL 33 TELETYPE

I.C.1 MODEL 35 TELETYPE
    The only difference between the models 33  and  35  teletypes  is
that  the  model 35 has a hardware tabbing and page eject (form feed)
mechanism, plus the keyboard is arranged slightly  differently.   The
paper  it  uses  has  holes  along  the  edges,  rather  than being a
continuous roll.
    When using the model 35, you should type control-P to the  system
to  inform it that you are using this teletype so it will not attempt
to type spaces when you type a TAB.
   

I.C.2 MODEL 37 TELETYPE
    This machine can  type  and  print  both  lower  and  upper  case
letters.   If  you  want  to  use  lower  case,  you  must first type
control-F to tell the system to pass lower case letters unchanged.
    There are discrepancies between the inscriptions on the  keys  of
the  model  37  and  the  actual  characters  those  keys  type.  The
following is a list of the character typed and the inscription on the
key:

CHARACTER	INSCRIPTION
   ←		   US
   ↑		   RS
   alt-mode	   PREFIX
   rubout	   DELETE


I.C.3 III DISPLAY CONSOLES
    These  devices  have  no  "CTRL" keys.  There are two keys marked
CONTROL-1 and CONTROL-2, but they don't do  the  same  thing  as  the
"CTRL"  key  on the teletype.  Instead, you type the actual character
that the control character stands for.  Section I.C.5 has a  complete
list   of   teletype  characters,  their  display  console  character
representation, and their octal values.
    Please notice that all the keys on the III display keyboards  are
legal  characters  and  that  depressing  ctrl  1 or ctrl 2 with (for
example) the letter "O" is not the same as control-O.   Control-O  on
the  teletype  is  ∂  on  the  III  keyboard, and typing ∂ on the III
display keyboard does not produce the effect of control-O.
    Since there is no actual CTRL key, there are  special  provisions
for  typing  the various special characters.  This is a short list of
the methods.  The symbol <ESC> will be used  to  denote  <ctrl  1>VT,
which means the ctrl 1 key depressed simultaneously with the vertical
tab key.


control-U

                                 I.C.3-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

    To get the effect of control-U, that is, deleting  the  line  you
just  typed,  type  <ctrl  1>LF,  which  is  the CTRL 1 key depressed
simultaneously while typing a line feed.


control-O
    This can be done by typing <ctrl 2>LF, which is the  CTRL  2  key
held  down while typing line feed.  You can get out of control-O mode
by typing <ESC>-O, that is, the escape character followed by a  minus
sign followed by the letter "O".


control-Z
    You  get  the  effect  of control-Z by typing <ctrl 1, ctrl 2>LF,
which is both CTRL keys held down while a line feed is typed.


control-F
    To get  lower  characters,  type  <ESC>F,  which  is  the  escape
character  followed  by the letter "F".  To return to upper-case only
mode, you type either another <ESC>F or you may also type <ESC>-F.
    The  display  consoles  also  have  discrepancies   between   the
inscriptions  on  the  keys and the characters those keys type.  This
list covers them all:

CHARACTER	INSCRIPTION
   \		   upper case ¬
   rubout	   BS
   alt-mode	   blank key
   control-C	   CALL

    There is another good feature of the III  displays.   Before  you
type  an activation character (carriage-return, line-feed, etc.), and
if your program is reading in line mode like most do,  you  may  edit
your  line  before  you  send  it to the program.  In addition to the
usual rubout and control-U type functions,  you  may  insert  in  the
middle  of  the  line  or whatever.  All this is controled by special
characters typed with ctrl-1 or ctrl-2 (or both) keys held down.
    Any line editor command where it makes sense may be preceeded  by
a  number (typed while ctrl-1 is held down) which is a decimal repeat
arguement.  The command is executed that  many  times.   The  default
option is, of course, 1.
    If  you  are  in the middle of a line and type characters with no
control key held down, the characters you  type  will  overwrite  the
characters on the line.

<ctrl-1>SPACE
    Spaces you forward in the line.


                                 I.C.3-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

<ctrl-1>BACKSPACE
    Moves you backwards through the line.

BACKSPACE
    This,  of course, deletes previous characters, but it is included
here because it applies when you are in the middle of a line also.

<ctrl-1>I
    This command is only valid in the middle of a line, because if it
were  at  the end of a line, it would represent a 9-bit character for
the program, not a line editor command.  This command allows  you  to
insert  extra  characters  in  the  middle  of a line.  To get out of
insert mode, type any <ctrl-1> command.

<ctrl-1>D
    This command is only valid in the middle of a line.  This deletes
the  character at the current editing position forward, as opposed to
<ctrl-1>BACKSPACE, which works backwards.

<ctrl-1>TAB
    This spaces you to the end of the current line.

<ctrl-1>S<character>
    This causes the current editing position,  hereafter  called  the
"pointer",  to  be advanced to just before the first occurance of the
character <character>.

<ctrl-1>K<character>
    This causes the deletion of all the characters from and including
the character at the pointer position and up to but not including the
character <character>.

<ctrl-1>carriage-return
    This gets back the last line you typed, if it  is  still  around.
This  way  you may type a line twice if you wish.  Or you may get the
previous line back and edit it.


I.C.4 ARDS STORAGE-TUBE DISPLAY
    The ARDS storage-tube display is  very  similar  to  a  model  37
teletype  when  the  display  features  are  not  used, in that it is
capable of typing both upper and lower case letters,  and  it  has  a
"CTRL" key.
    The  principal  difference  between this device and a teletype is
that the printout may run off the bottom of the screen!  If  it  does
so,  you  may  press  the  "ERASE" button on the keyboard, which will
discard your current printout and reposition the cursor at the top of
the screen.  The page eject (form feed) character will do this also.
    Again,  there  is a difference between what key you type and what

                                 I.C.4-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

character is printed, as is shown here:

CHARACTER	INSCRIPTION
   alt-mode	   ~ (or control-[, or })
   ←		   _
   ↑		   ~


I.C.5 STANFORD CHARACTER SET
    I shall now  present  a  list  of  the  available  characters  at
Stanford.   All of these characters may be printed on the III display
consoles and on the line printer.  There are representations of  each
of these characters to the text editor, STOPGAP, which allow entry of
characters which would normally be intercepted by  the  system.   The
octal  values  of  the characters is included for completeness' sake.
An uparrow (↑) will be used to indicate a control character, that is,
↑C will be used to mean control-C.

CHARACTER	TELETYPE	STOPGAP		OCTAL
   null		   none		   none		   000
   ↓		   ↑A		   ?!		   001
   α		   ↑B		   ?"		   002
   β		   ↑C		   ?#		   003
   ∧		   ↑D		   ?$		   004
   ¬		   ↑E		   ?%		   005
   ε		   ↑F		   ?&		   006
   π		   ↑G		   ?'		   007
   λ		   ↑H		   ?(		   010
   tab		   ↑I		   tab		   011
   line-feed	   line-feed	   line-feed	   012
   vertical tab	   vertical tab	   vertical tab	   013
   form-feed	   ↑L		   form-feed	   014
   carr.-ret.	   return	   none		   015
   ∞		   ↑N		   ?)		   016
   ∂		   ↑O		   ?*		   017
   ⊂		   ↑P		   ?+		   020
   ⊃		   ↑Q		   ?,		   021
   ∩		   ↑R		   ?-		   022
   ∪		   ↑S		   ?.		   023
   ∀		   ↑T		   ?/		   024
   ∃		   ↑U		   ?0		   025
   ⊗		   ↑V		   ?1		   026
   ↔		   ↑W		   ?2		   027
   _		   ↑X		   ?9		   030
   →		   ↑Y		   ?6		   031
   ~		   ~		   ?3		   032
   ≠		   ↑[		   ?=		   033
   ≤		   ↑\		   ?<		   034
   ≥		   ↑]		   ?>		   035

                                 I.C.5-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

   ≡		   ↑↑		   ?7		   036
   ∨		   ↑←		   ?8		   037
   space	   space	   space	   040
   !		   !		   !		   041
   "		   "		   "		   042
   #		   #		   #		   043
   $		   $		   $		   044
   %		   %		   %		   045
   &		   &		   &		   046
   '		   '		   '		   047
   (		   (		   (		   050
   )		   )		   )		   051
   *		   *		   *		   052
   +		   +		   +		   053
   ,		   ,		   ,		   054
   -		   -		   -		   055
   .		   .		   .		   056
   /		   /		   /		   057
   0		   0		   0		   060
   1		   1		   1		   061
   2		   2		   2		   062
   3		   3		   3		   063
   4		   4		   4		   064
   5		   5		   5		   065
   6		   6		   6		   066
   7		   7		   7		   067
   8		   8		   8		   070
   9		   9		   9		   071
   :		   :		   :		   072
   ;		   ;		   ;		   073
   <		   <		   <		   074
   =		   =		   =		   075
   >		   >		   >		   076
   ?		   ?		   ??		   077
   @		   @		   @		   100
   A		   A		   A		   101
   B		   B		   B		   102
   C		   C		   C		   103
   D		   D		   D		   104
   E		   E		   E		   105
   F		   F		   F		   106
   G		   G		   G		   107
   H		   H		   H		   110
   I		   I		   I		   111
   J		   J		   J		   112
   K		   K		   K		   113
   L		   L		   L		   114
   M		   M		   M		   115
   N		   N		   N		   116

                                 I.C.5-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

   O		   O		   O		   117
   P		   P		   P		   120
   Q		   Q		   Q		   121
   R		   R		   R		   122
   S		   S		   S		   123
   T		   T		   T		   124
   U		   U		   U		   125
   V		   V		   V		   126
   W		   W		   W		   127
   X		   X		   X		   130
   Y		   Y		   Y		   131
   Z		   Z		   Z		   132
   [		   [		   [		   133
   \		   \		   \		   134
   ]		   ]		   ]		   135
   ↑		   ↑		   ↑		   136
   ←		   ←		   ←		   137
   `		   none		   ?@		   140
   a		   a		   ?A		   141
   b		   b		   ?B		   142
   c		   c		   ?C		   143
   d		   d		   ?D		   144
   e		   e		   ?E		   145
   f		   f		   ?F		   146
   g		   g		   ?G		   147
   h		   h		   ?H		   150
   i		   i		   ?I		   151
   j		   j		   ?J		   152
   k		   k		   ?K		   153
   l		   l		   ?L		   154
   m		   m		   ?M		   155
   n		   n		   ?N		   156
   o		   o		   ?O		   157
   p		   p		   ?P		   160
   q		   q		   ?Q		   161
   r		   r		   ?R		   162
   s		   s		   ?S		   163
   t		   t		   ?T		   164
   u		   u		   ?U		   165
   v		   v		   ?V		   166
   w		   w		   ?W		   167
   x		   x		   ?X		   170
   y		   y		   ?Y		   171
   z		   z		   ?Z		   172
   {		   none		   ?[		   173
   |		   |		   ?:		   174
   alt-mode	   alt-mode	   none		   175
   ⎇		   ⎇		   ?]		   176
   rubout	   rubout	   none		   177

                                 I.C.5-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I


    At  this  point,  it  should  be  pointed  out  that  the special
characters mentioned in section I.B.10 are intercepted if typed on  a
teletype  by the system.  The only way to get them in from a teletype
is  to  use  the  STOPGAP  representation.   Also,  there  are  three
different characters recognized by the system as alt-mode.  These are
character codes 032, 175,  and  176.   The  only  way  to  get  these
characters  into  a  program unless you are a III display keyboard is
through their STOpGAP representations.









































                                 I.C.5-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.D HANDLING OF OTHER DEVICES

I.D.1 CARE AND FEEDING OF THE LINE PRINTER
    The line printer is a strange beast with many  lurking  ailments.
First  of  all, it has three buttons on one side (labled START, STOP,
and TOP OF FORM) and it has  numerous  buttons  on  the  other  side,
including  a  duplication  of  the  mentioned three.  If your listing
fails to come out, check the following things: Is the START light on?
If  not,  press  START  to  make  it come on.  If it still refuses to
print, check the side with all the buttons to  see  if  there  is  an
error condition.  There are two error conditions you should take note
of.  One is when the PAPER LOW ALERT light is on.  This is as good as
being  out  of paper, in which case, the NO PAPER light will come on.
In either of these two cases, the paper supply must  be  replenished.
You  do  this  by  either calling a technician, or doing it yourself.
The only tricks here are to get all four sprocket wheels engaged with
the paper, get the yoke open and closed successfully, and get the top
of a form near the crease in the paper guide behind the  yoke.   When
all  this  is done, you may restart the printer by hitting START, and
typing CONTINUE to your program.
    There exists a 'hung' condition on the line printer.  It  can  be
identified  by the MANUAL PRINT light coming on when you press START.
This condition is called START-STOP-MANUAL PRINT.   It  is  cured  by
pressing  STOP  then MANUAL PRINT, then START again and again in that
order until the condition goes  away.   If  the  condition  persists,
there  is a true CLEAR button on the inside of the machine.  You open
the right-most (as you face the side with the  many  buttons)  panel.
You  will  see in the upper left corner of this panel a button called
CLEAR.  If that doesn't do the trick, call a technician.
    There is another red light that may come  on.   If  ALARM  STATUS
comes  on,  call  a technician immediately, and shut the line printer
power off.  This is a real no-no.  The YOKE OPEN light will  come  on
if  you  decide  to  change the paper yourself, but it should go away
when you close the yoke.
    When your listing is done, you can eject extra  blank  pages,  if
you  wish,  by  pressing  STOP,  then  the  TOP  OF FORM button, then
pressing START again.  IF YOU DO NOT PRESS START AGAIN,  EVERYONE  IN
THE COMPUTER ROOM WILL GET VERY MAD AT YOU!!!!



I.D.2 MOUNTING DECTAPES
    To  mount  a dectape, first place it on the left-hand reel of one
of the four drives.  A drive is a pair of reels.  You thread the tape
over  the top of the silvery tape guide, and around the take up reel.
You have to wind it around the take up reel yourself.  Be sure  there
are plenty of turns or the tape will come off the take up reel.  When
you are sure it is secure, then direct  your  attention  to  the  two
switches.   One  switch  has  three  positions:  off, write-lock, and

                                 I.D.2-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

write.  You flip this switch to write-lock if you just want  to  read
the  tape,  or  to write if you wish to read and write the tape.  You
may then space the tape forward if you like by  means  of  the  other
switch.
    Dismounting  dectapes  is  a  bit  harder.   First  you  use  the
direction switch to wind your tape all the way off the take up  reel,
then  you  throw  the other switch to the off position.  You can then
take your tape off by hand (with  difficulty)  or  you  can  use  the
little black piece of metal to pry it off.  This is usually quicker.



I.D.3 MOUNTING MAGNETIC TAPES
    First,  you  must decide whether you want to write on the tape or
not.  If you do, you must place one of the yellow write-enable  rings
in  your  tape.   After  that, you place your tape on the top hub and
twist the handle in the hub clockwise  to  tighten  your  reel  down.
There is a switch between the two reels with three positions: brakes,
neutral, and start.  You will soon notice that you cannot turn either
of  the  reels  by hand.  You must first set the switch to the brakes
position to release the reel brakes.  Then unwind  about  a  yard  of
tape  to  thread the machine with.  Run the tape through the slot and
over the top of the take up reel.  The take up reel turns  clockwise,
so  wind  some tape on by hand and give it several turns, holding the
switch to the brake position all this time.  When this is done,  take
the  slack  out  of  the  tape  then  throw  the  switch to the start
position.  The tape will hiss and spin and position itself.  You have
to hold the start switch down for a while, until it stops hissing, or
it will not finish positioning itself.
    Now we are ready to look at the  buttons.   There  is  an  on-off
button.   If  the drive were off, you would not get any response when
you set the other switch to start or brakes.  The next button is  the
remote-local  button.  When this is in local, you will not be able to
use the drive  from  the  computer,  but  the  forward-reverse-rewind
buttons  work.   You may rewind your tape by putting the remote-local
switch in local  and  pressing  the  rewind  button.   To  allow  the
computer  to access the tape, you must put the remote-local switch in
remote.  The forward-reverse-rewind  buttons  are  disabled  in  this
position.
    Note:  do  not  attempt  to  take the bottom reel off, you can't.
When you are done, you should rewind your  tape.   You  dismount  the
tape  by pressing the start-brakes switch to brakes and waiting until
the hiss has gone.  You may then wind your tape  off  by  hand.   You
dismount  the  tape  reel by unscrewing the hub, by turning it in the
counter-clockwise direction.





                                 I.D.3-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

I.E SUMMARIES

I.E.1 ALPHABETICAL COMMAND INDEX
    A few definitions are in order concerning this part.  DEV will be
used to designate a legal device name.  LDEV will designate a logical
device name.  FILE is any file name.   EXT  is  any  file  extension.
[PJ,PG]  is  a  project-programmer name enclosed in brackets.  Fn (or
F1, F2, and so on) represent file descriptors, which follow the form:
{DEV:} FILE {.EXT} {[PJ,PG]},  where  braces  ({}) represent optional
arguments.  If DEV is missing, DSK is assumed.  If .EXT  is  missing,
blank  extension  is  assumed  (except for the COMPILE commands).  If
[PJ,PG] is missing, the project-programmer name you logged  in  under
is assumed.

COMMAND		ABBREV	FORM				SECTION
ADVANCE		AD	{RECORD} {MTAn} {n}		I.B.11
ASSIGN		A	DEV {LNAME}			I.B.8.c
ATTACH		ATT	JOB [PJ,PG]			I.B.9
BACKSPACE	BA	{RECORD} {MTAn} {n}		I.B.11
CCONTINUE	CC					I.B.6
COMPILE		COM	{F1}{,F2} . . . {,Fn}		I.B.4.a
CONTINUE	CONT					I.B.6
COPY		COP	{F1←}F2{,F3} . . . {,Fn}	I.B.3
CORE		C	{n⎇				I.B.8.h
COREX							I.B.7
CREATE			F1				I.B.3
CREF							I.B.4.f.2
CSTART		CS	{n}				I.B.6
DAYTIME		DA					I.B.7
DDT		DD					I.B.6
DEASSIGN	D	{DEV}				I.B.8
DEBUG		DEB	{F1}{,F2} . . . {,Fn}		I.B.4.b
DELETE		DEL					I.B.3
DETACH		DET					I.B.9
DIRECTORY	DIR	{DEV}{[PJ,PG]}			I.B.3
DUMP		DU	{F1}{,F2} . . . {,Fn} {ON MTAn}	I.B.11
EDIT		ED	{F1}				I.B.3
EOT		EO	{MTAn}				I.B.11
EXECUTE		EX	{F1}{,F2} . . . {,Fn}		I.B.4.d
FINISH		F	DEV				I.B.8.e
GET			DEV:FILE{.EXT}{[PJ,PG]}{n}	I.B.5
IDUMP		I	{F1}{,F2} . . . {,Fn} {ON MTAn}	I.B.11
KJOB		K					I.B.2
LIST		LI	F1{,F2} . . . {,Fn}		I.B.3
LOAD			{F1}{,F2} . . . {,Fn}		I.B.4.e
LOGIN		L					I.B.2
PJOB		PJ					I.B.7
PPPN		PP					I.B.7
R			FILE{.EXT} {n}			I.B.5

                                 I.E.1-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

REASSIGN	REA	DEV n				I.B.8
REENTER		REE					I.B.6
RENAME		REN	F1=F2				I.B.3
RESOURCES	RESO					I.B.7
RESTORE		REST	{F1}{,F2} . . {,Fn} {FROM MTAn}	I.B.11
REWIND		REW	{MTAn}				I.B.11
RUN		RU	DEV:FILE{.EXT}{[PJ,PG]}{n}	I.B.5
SAVE		SA	DEV:FILE{.EXT}{[PJ,PG]}{n}	I.B.5
SEND		SE	PG				I.B.3
SLEVEL		SL	{n}				I.B.8.g
START		S	{n}				I.B.6
SYSTAT		SYS					I.B.7
TALK		TA	TTYn				I.B.9
TLIST		TL	{n} {MTAn} {F1}			I.B.11
TRANSFER	TRA	{F1←}F2{,F3} . . . {,Fn}	I.B.3
TRY			{F1}{,F2} . . . {Fn}		I.B.4.c
TYPE		TY	F1{,F2} . . . {Fn}		I.B.3
ZERO		Z	DEV				I.B.3


I.E.2 LOADER SWITCHES
    By including a percent sign (%) followed by a letter, or a number
and a letter, in the command string of one of the LOAD, TRY, EXECUTE,
or  DEBUG  commands,  one  can  give  instructions to the loader in a
direct manner.  This is  a  list  of  the  legal  letters  and  their
meanings.

%A - Causes a listing of all global symbols to be printed.
%B - Do not shrink core when done loading.
%nB - Adjust to nK of core when done loading.
%D - Load DDT.
%E - Start up program when done loading.
%F - Enter library search mode.
%G - Begin loading, make final links and exit.
%H - Load and start RAID.
%I - Ignore starting address of this program.
%K - Save 16 words of symbol table space for DDT defined symbols.
%nK - Save n words of symbol table space.
%L - Enter library search mode.
%M - Print storage map.
%N - Leave library search mode.
%nO - Set starting address to n, absolute.
%P - Inhibit automatic library search for undefined globals.
%Q - Allow automatic library search.
%S - Load symbol table also.
%T - Load and start DDT.
%U - Print current list of undefined globals.
%V - Load RAID.
%W - Do not list all globals.

                                 I.E.2-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

%X - Rewind tape before use.
%Z - Reinitialize loader.


I.E.3 ERROR MESSAGE INDEX
    This  is  a  short  summary  of the error messages the system can
give.  The convention used below is that the symbol "XXX" stands  for
a  device  name, such as "LPT" or "DTA3" or "DSK" or any legal device
name.  The symbol "FNAM.EXT" stands for any legal file name and  file
name  extension that you may have typed in a command.  The symbol "#"
stands for a number.  Some of these messages are self-explainatory.


Messages from the system itself . . .

ADDRESS CHECK FOR DEVICE XXX
	This means you were operating device "XXX" and one of
	the associated addresses (like buffer ring addresses, or
	dump mode command addresses or such) lies outside
	the bounds of your program.
ALREADY ASSIGNED TO JOB #
	If you try to assign a device that some
	other job (job # to be exact) has already
	assigned, you get this message.
BAD DIRECTORY FOR DEVICE XXX
	You get this only from dectapes, and it can occur if
	the system can not read or write the directory without
	getting some kind of error. Note that this can occur
	if you write on a write-locked tape.
BUSY
	If you try to talk to a teletype that is in use
	you get this message.
CAN'T ATT DEV
	If devices have been detached from the system
	and you mistype their name when you try to
	re-attach them, you get this message.
CAN'T CONTINUE
	This means your program was terminated with
	an error and is not allowed to continue.
CAN'T DET DEV
	When you attempt to detach a device from the
	system that is still being used by someone, or
	is still assigned to someone, you get this.
CONS TRAP
	You get this if your program is running on the PDP-6 and
	executes a "CONS" instruction that causes either the
	free storage list to be exhausted, or causes the cons
	counter to overflow.
CORE IS FULL

                                 I.E.3-1

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	You get this in the non-disk system
	if you typed a command which requires more
	core than is available.
DEVICE XXX Has No Output Buffer Header, UUO AT USER #
DEVICE XXX Has no Input Buffer Header, UUO AT USER #
DEVICE XXX Buffer header address check, UUO AT USER #
DEVICE XXX BUFFER TOO LARGE, UUO
DEVICE XXX OK?
	This message means the device "XXX" was disabled at the
	time you requested it. For the line printer, it means it is
	turned off or out of paper or something. For the mag. tapes,
	it means there is no tape mounted, or the switch is in "LOCAL",
	or something. And for the disk, it means there is no more
	disk space left. If you correct the ailing situation, you
	can proceed (retry the operation) by saying "CONTINUE".
DEVICE XXX NOT AVAILABLE
	This results from attempting to save a program
	on a device that some else is using.
DIRECTORY FULL
	This results from attempting to save a file on
	a tape that can't hold any more file names.
	In other words, you get this when your dectape
	is full.
DISK ERROR; SENSE DATA IS: 
	This message, followed by a bunch of numbers,  means the
	disk cannot read (or write) your file right now.
ERROR IN JOB #
	This usually proceeds some error message the system is
	about to print out. "#" is probably your job number.
ERROR IN MONITOR
	This is usually preceeded and followed by a system
	crash and means the system is not feeling well.
Finish What?????
	When you attempt to finish a device that is 
	not initialized by your program, you will
	get this message.
FNAM.EXT NOT FOUND
	If you attempt to get or run a program that is
	not on the device you said it was on, or under a different
	project-programmer number, you can get this.
FNAM.EXT NOT A DUMP FILE
	This occurs from trying to get or run a file
	that is not a saved program but is something
	else, like perhaps a text file.
HALT AT USER #
	This means your program halted. You can proceed by
	typing "CONTINUE".
HUNG DEVICE XXX
	This results from your referencing a device which

                                 I.E.3-2

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	did not respond within a certain length of time, usually
	about 30 seconds. The system then decides that
	this device is not functioning and gives you this
	message.
ILL INST. AT USER #
	Virtually the same as ILLEGAL UUO.
ILL MEM REF
	This message and the following few occur if your
	program does something silly. In this case, if your
	program references a memory location outside of
	its bounds.
ILLEGAL DATA MODE FOR DEVICE XXX
	This means you tried to "INIT" or "OPEN" a device
	in a mode that is not legal, such as, dump mode for
	teletype and line printer is illegal. Modes 0,1, and
	10 are usually legal.
ILLEGAL JOB NUMBER
	To attach a job or get a job's run time, you
	have to type a job number. If that number is
	greater than the maximum number of jobs the
	system can hold, you get this message.
ILLEGAL UUO AT USER #
	This means your program executed an illegal instruction
	at location "#" in your core image.
INPUT DEVICE XXX CANNOT DO OUTPUT
	If you try to do output on a device that can only
	do input, you get this.
IO TO UNASSIGNED CHANNEL
	This comes from trying to do an "OUTPUT", "INPUT",
	"OUT" or "IN" to a device that your program
	has not initialized.
JOB CAPACITY EXCEEDED
	This occurs when you type a command which
	attempts to log you in ("L" or "SYS")
	and the machine cannot handle any more jobs.
JOB NEVER WAS INITIATED
	If you say "KJOB" to a virgin console, or
	two times in a row to another console, you
	get this message because you are not logged
	in. You can also get this from trying to attach a
	job that is not logged in.
LOGICAL NAME ALREADY IN USE, 
	If you try to assign two devices
	to the same logical name, you get this.
	It assigns the device anyway and clears the logical
	name. It types "XXX ASSIGNED" after that.
LOGIN PLEASE
	You get this message if you type a command
	to the monitor which requires you to be

                                 I.E.3-3

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	logged in and you are not logged in.
NO CORE ASSIGNED
	You get this in the non-disk system if the
	command you typed requires core.
	You get this in the disk system when you give
	a program start command, (S, CS, REE, or DDT)
	when you have no core.
NO DDT
	This is typed if you typed DDT and there is not
	really a copy of DDT or RAID in your core image.
NO REENTER ADDRESS
	If you say "REENTER" or "REE" when the job
	has not specified a reentry address, you
	get this.
NO STARTING ADDRESS
	If you type S, CS, or REE when the starting
	address or reenter address of your program is zero,
	you will get this message.
NO SUCH DEVICE
	This results from attempting to assign a
	device that the system does not know about
	or whose name is misspelled.
NON EX MEM
	You get this usually due to an error in the monitor itself.
OUT OF BOUNDS
	This occurs when you try to examine a location
	in memory that is not in your core image.
OUTPUT DEVICE XXX CANNOT DO INPUT
	If you attempt to to input on an output device you
	get this message. Such as, input from the line printer
	is meaningless and gives you this message.
PC EXCEEDS MEM BOUND
	This occurs if your program jumps outside of its bounds.
PDL OV
	This means your program did a "PUSH" or a "POP" that
	made the pushdown list either underflow or overflow, i.e.
	made the left half of your pushdown pointer change
	sign.
PLEASE KJOB OR DETACH
	If you try to attach a job when you
	already have a job initialized at that
	teletype, this message is typed.
PLEASE TYPE ↑C FIRST
	If you are running a job and you type a command
	which requires that you not be running,
	it will type this message.
Project-programmer number mismatch
	When you attach a job, you must type a
	project-programmer number. If this does

                                 I.E.3-4

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	not agree with the system's copy of the
	project programmer number for that job,
	it will print this message.
SPACEWAR LOSSAGE
	If you get an ILL MEM REF, a PDL OV, a CONS TRAP, or
	a NXM from your spacewar job. You also get
	it from trying to start two spacewar jobs on the same
	processor, or from trying to start a spacewar job with
	a 0 tick time.
SWAP UUO ERROR - Starting address out of bounds.
SWAP UUO ERROR - Address check for goodie table
TOO FEW ARGUMENTS
	You get this if you type a command and the system
	is expecting you to type in more than you did.
	See the manual or ask someone.
TRANSMISSION ERROR
	If during a save, get, or run command, the system
	gets parity errors from the device, or
	is unable to read your file in some other
	way, this message is typed. It can mean something
	as simple as trying to write on a write-locked
	tape.
TTY# ALREADY ATTACHED
	When you attempt to attach a job to a teletype
	and the job is already attached to some teletype,
	(TTY# to be exact) you get this message.
UUO AT EXEC #
	This occurs when you typed a command that causes the
	monitor to execute its own UUOs (finish, save, get, etc)
	and an error occured during one of them.
UUO  AT USER #
	This also accompanies error messages and tells the location
	in your program where the UUO was that was the last
	instruction your program executed before the error occured.
XXX WASN'T ASSIGNED
	You can get this from attempting to deassign
	device "XXX" when you did not previously assign
	it with a console command. You also get this from
	trying to reassign a device you don't own.
XXX CAN'T BE REASSIGNED
	If you try to reassign a device that your
	program is not finished with, you get this.
WASN'T DET
	You get this if you attempt to attach a device
	that has not been detached from the system.
#K OF CORE NEEDED
	In the non-disk system, you get this message if
	the program you are trying to get or run needs
	more core than you have assigned at the moment.

                                 I.E.3-5

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I



Error messages that originate in the III display routines . . .

illegal piece of paper
Illegal page size spec.
I am sorry. The DPY you have requested ...
	This occurs if you attempt to execute display UUOs
	and you are not at a display.
dpy prgm too big.
Illegal instr. address.
JMS not legal; use JSR.
Total DPY buffer space exceeded.
$$ Error in user dpy prgm; dpy instr at 


Errors that originate in the disk service routine . . .

DISK IS FULL - EVERYBODY LOOSES!!
BAD RETRIEVAL
	This means the file you were trying to read or write
	is garbaged on the disk in such a way that you may
	no longer access it. The only thing you can do is
	delete it, and the only way you can do that is to do
	an ENTER on it (see section πII.D.3π).
LOOKUP AND ENTER HAVE DIFFERENT NAMES


Errors from COMPILE commands . . .

NO SUCH FILE - FNAM.EXT
	This is given when it can't locate a particular
	source or .REL file. The extension it types out
	is not necessarily accurate.
TOO MANY SWITCHES
	The COMPILE commands can only handle a
	finite number of switches. This means you
	have exceeded the limit.
TOO MANY NAMES
	This occurs only using the plus sign (+)
	construction and means what it says.
DISK NOT AVAILABLE
	This is evil and should be brought to someone's
	attention if it happens.
OUTPUT ERROR
	Equally evil. Means it got an error while writine
	a QQxxxx.RPG file.
INPUT ERROR
	Means the file following your at sign (@) has

                                 I.E.3-6

SAILON NUMBER 54.2		MONITOR MANUAL - CHAPTER I

	errors on it. It should be rewritten.
PROCESSOR CONFLICT
	This happens when you give inconsistant processor
	declarations, like "COM FOO.MAC+BAZ.F4". This
	means treat like one big assembly, but in two
	different languages. (???)
COMMAND ERROR
	General catch-all error response. Means the syntax of
	your command is screwed up somehow. Alter the
	syntax and try again.
NESTING TOO DEEP
	Means the depth of the at sign (@) construction
	has gone too far.
UNRECOGNIZABLE SWITCH
	You have given it a switch it did not recognize.
FILE IN USE OR PROTECTED
	It could not delete or write one of the
	QQxxxx.RPG files. Can happen if two people are
	running logged in as the same project-programmer
	name.
DEVICE NOT AVAILABLE - XXX
	Means someone is already using the device. Should
	not happen with the disk.



























                                 I.E.3-7